数据结构--【二叉树】重难点总结
关注我
重点:
二叉树的存储结构
三种遍历算法的区别
难点:
三种遍历算法的理解和应用
链式存储结构--二叉链表存储结构
lchild |
data |
rchild |
data表示数据域,存储对应的数据元素
lchild表示左指针域,存储此元素左孩子结点的位置
rchild表示右指针域,存储此元素右孩子结点的位置
注意:叶子结点左右指针域为空NULL。
1. 二叉树为空,退出
2. 不空,则 访问根节点,先序遍历左子树,先序遍历右子树。
Void Preorder(BTNode *p)
{
if(p != NULL){
Visit(p);
Preorder(p -> lchild);
Preorder(p -> rchild);
}
}
1. 二叉树为空,退出
2. 不空,则 中序遍历左子树,访问根节点,中序遍历右子树。
Void inorder(BTNode *p)
{
if(p != NULL){
inorder(p -> lchild);
Visit(p);
inorder(p -> rchild);
}
}
1. 二叉树为空,退出
2. 不空,则 后序遍历左子树,后序遍历右子树,访问根节点。
Void Postorder(BTNode *p)
{
if(p != NULL){
Postorder(p -> lchild);
Postorder(p -> rchild);
Visit(p);
}
}