遍历二叉树的应用

来源:互联网 发布:众筹软件排名 编辑:程序博客网 时间:2024/06/09 16:16

1. 输出二叉树中的叶子结点:

在二叉树的遍历算法中增加检测结点的“左右子树是否都为空”。

void PreOrderPrintLeaves(BinTree BT){if(BT){if(!BT->Leaf && !BT->Right){printf("%d", BT->Data);}PreOrderPrintLeaves(BT->Leaf);PreOrderPrintLeaves(BT->Right);}}
2.  求二叉树的高度:


int PostOrderGetHeight(){int HL, HR, MaxH;if(BT){HL = PostOrderGetHeight(BT->Left); /*求左子树的深度*/HR = PostOrderGetHeight(BT->Right);/*求右子树的深度*/MaxH = (HL > HR) ? HL : HR; /*取左右子树较大的深度*/return (MaxH +1);/*返回树的深度*/*/}}
3. 二元表达式树及其遍历:



4. 由两种遍历序列确定二叉树:

必须要有中序遍历才行

1) 先序和中序遍历序列来确定一课二叉树

分析:

a) 根据先序遍历序列第一个结点确定根结点

b) 根据根结点在中序遍历序列中分割出左右两个子序列

c)  对左子树和右子树分别递归使用相同的方法继续分解。







1 0
原创粉丝点击