二叉树的定义 typedef char TreeData;/树结点数据类型 typedef struct node{∥|树结点定义 TreeData data /结点数据域 struct node x leftchild. rightchild 子女指针域 3 BinTreenode, typedef Bin TreeNode* BinTree; /树定义,代表树的根指针
typedef char TreeData; //树结点数据类型 typedef struct node { //树结点定义 TreeData data; //结点数据域 struct node * leftChild, * rightchild; //子女指针域 } BinTreeNode; typedef BinTreeNode * BinTree; //树定义,代表树的根指针 二叉树的定义
二叉树遍历 树的遍历就是按某种次序访问树中的结 点,要求每个结点访问一次且仅访问一次。 设访问根结点记作V 遍历根的左子树记作L 遍历根的右子树记作R 则可能的遍历次序有 前序VLR镜像VRL 中序LVR镜像RVL 后序LR镜像RLV
二叉树遍历 树的遍历就是按某种次序访问树中的结 点,要求每个结点访问一次且仅访问一次。 设访问根结点记作V 遍历根的左子树记作 L 遍历根的右子树记作 R 则可能的遍历次序有 前序 VLR 镜像 VRL 中序 LVR 镜像 RVL 后序 LRV 镜像 RLV
中序遍历( Inorder raversal 中序遍历二叉树算法的框架是: 若二叉树为空,则空操作:Q 否则 ◆中序遍历左子树①L); 访问根结点(V); 中序遍历右子树(R 遍历结果 d a+b*c-d-e/∫
中序遍历二叉树算法的框架是: ◼ 若二叉树为空,则空操作; ◼ 否则 ◆ 中序遍历左子树 (L); ◆ 访问根结点 (V); ◆ 中序遍历右子树 (R)。 遍历结果 a + b * c - d - e / f 中序遍历 (Inorder Traversal) - - + / a * b c d e f
二叉树递归的中席遍历算法 void InOrder( BinTreeNode T)t if(T= NULL)( InOrder(T->leftchild ) cout <<T->data InOrder(T->rightChild )
void InOrder ( BinTreeNode *T ) { if ( T != NULL ) { InOrder ( T->leftChild ); cout << T->data; InOrder ( T->rightChild ); } } 二叉树递归的中序遍历算法
前序遍历( Preorder traversa 前序遍历二叉树算法的框架是: 若二叉树为空,则空操作 否则 ◆访问根结点(V); 前序遍历左子树();a ◆前序遍历右子树(R) b 遍历结果 d +a b-cdlef
前序遍历二叉树算法的框架是: ◼ 若二叉树为空,则空操作; ◼ 否则 ◆ 访问根结点 (V); ◆ 前序遍历左子树 (L); ◆ 前序遍历右子树 (R)。 遍历结果 - + a * b - c d / e f 前序遍历 (Preorder Traversal) - - + / a * b c d e f