数据结构-16.二叉树的先序中序后序遍历2024-01-12 14:57:28typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; 先序遍历:(递归) void PreOrder(BiTree T){ if(T!=NULL){ visit(T); //访问根结点(打印) PreOrder(T->lchild); //递归遍历左子树 PreOrder(T->rchild); //递归遍历右子树 } } 中序遍历:(递归) void InOrder(BiTree T){ if(T!=NULL){ InOrder(T->lchild); visit(T); InOrder(T->rchild); } } 后序遍历:(递归) void PostOrder(BiTree T){ if(T!=NULL){ PostOrder(T->lchild); PostOrder(T->rchild); visit(T); } } 求树的深度:(应用) int treeDepth(BiTree T){ if(T==NULL) return 0; else{ int l=treeDepth(T->lchild); int r=treeDepth(T->rchild); return l>r?l+1:r+1; }//树的深度=MAX(左子树的深度,右子树的深度)+1 } 上一篇:c语言:二叉排序树的操作下一篇:树的基本功能的实现