6.2二叉树 ●二叉树的遍历 遍历:是指沿某条搜索路径周游二叉树,对树中每个 结点访问一次且仅访问一次 前序遍历(DLR):访问根的操作是在遍历其左、右 (先根) 子树之前进行的。 中序遍历(LDR):访问根的操作是在遍历其左、右 (中根) 子树之中进行的。 后序遍历(IRD)访问根的操作是在遍历其左、右 (后根) 子树之后进行的
6.2 二叉树 ⚫ 二叉树的遍历 遍历:是指沿某条搜索路径周游二叉树,对树中每个 结点访问一次且仅访问一次。 前序遍历(DLR):访问根的操作是在遍历其左、右 (先根) 子树之前进行的。 中序遍历(LDR):访问根的操作是在遍历其左、右 (中根) 子树之中进行的。 后序遍历(LRD):访问根的操作是在遍历其左、右 (后根) 子树之后进行的
6.2二叉树 前序遍历序列: ABDCEF 中序遍历序列: DBAECF 后序遍历序列: DBEFCA
6.2 二叉树 A B C D E F 前序遍历序列:ABDCEF 中序遍历序列:DBAECF 后序遍历序列:DBEFCA
6.2二叉树 前序遍历递归算法 Status PreOrder (Bitree t) f if (t)i visit(T->data PreOrder(T->lchild) PreOrder(T->rchild)
6.2 二叉树 前序遍历递归算法: Status PreOrder(BiTree T) { if (T) { Visit(T->data); PreOrder(T->lchild); PreOrder(T->rchild); } }
6.2二叉树 中序遍历递归算法 Status InOrder ( BiTree T) ①{if(T){ InOrder(T->lchild) Visit(T->data InOrder(t->rchild)
6.2 二叉树 中序遍历递归算法: Status InOrder(BiTree T) ① { if (T) { ② InOrder(T->lchild); ③ Visit(T->data); ④ InOrder(T->rchild); } ⑤}
6.2二叉树 后序遍历递归算法 Status PostOrder(BiTree T f if (t)i postOrder(t->lchild) PostOrder(t->rchild) Visit(T->data)
6.2 二叉树 后序遍历递归算法: Status PostOrder(BiTree T) { if (T) { PostOrder(T->lchild); PostOrder(T->rchild); Visit(T->data); } }