二叉树递归的前序遍历算法 void PreOrder( BinTreeNode t)i if(T!=NULL)t cout <<T->data: PreOrder(T->left child ) PreOrder(T->right Child )
二叉树递归的前序遍历算法 void PreOrder ( BinTreeNode *T ) { if ( T != NULL ) { cout << T->data; PreOrder ( T->leftChild ); PreOrder ( T->rightChild ); } }
后序遍历( Postorder traversal 后序遍历二叉树算法的框架是: 若二叉树为空,则空操作;Q n否则 ◆后序遍历左子树(L); 后序遍历右子树(R); ◆访问根结点(V) b 遍历结果 d a*+ef
后序遍历二叉树算法的框架是: ◼ 若二叉树为空,则空操作; ◼ 否则 ◆ 后序遍历左子树 (L); ◆ 后序遍历右子树 (R); ◆ 访问根结点 (V)。 遍历结果 a b c d - * + e f / - 后序遍历 (Postorder Traversal) - - + / a * b c d e f
二叉树递归的后序遍历算法 void PostOrder( BinTreenode *T)t if(T!=NULL) PostOrder(t-> leftchild PostOrder(t->rightchild ) cout <<T->data
二叉树递归的后序遍历算法 void PostOrder ( BinTreeNode * T ) { if ( T != NULL ) { PostOrder ( T->leftChild ); PostOrder ( T->rightChild ); cout << T->data; } }
应用二叉树遍历的事例 二叉树建立的递归算法 以递归方式建立二叉树。 输入结点值的顺序必须对应二叉树结点前 序遍历的顺序。并约定以输入序列中不可 能出现的值作为空结点的值以结束递归 此值在 Revalue中。例如用“@"或用“-1” 表示字符序列或正整数序列空结点
应用二叉树遍历的事例 ◼ 以递归方式建立二叉树。 ◼ 输入结点值的顺序必须对应二叉树结点前 序遍历的顺序。并约定以输入序列中不可 能出现的值作为空结点的值以结束递归, 此值在RefValue中。例如用“@”或用“-1” 表示字符序列或正整数序列空结点。 二叉树建立的递归算法
如图所示的二叉树的前序遍历顺序为 ABC@回DE@G@@F@@ B @@(E G @(G@@ @@
如图所示的二叉树的前序遍历顺序为 A B C @ @ D E @ G @ @ F @ @ @ A B C D E G @ @ F @ @ @ @ @ @