其他分享
首页 > 其他分享> > 二叉树的应用

二叉树的应用

作者:互联网

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

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

void PreOrderPrintLeaves( BinTree BT ) {
if( BT ) {
if ( !BT-Left && !BT->Right )
printf(“%d”, BT->Data );
PreOrderPrintLeaves ( BT->Left );
PreOrderPrintLeaves ( BT->Right );
 } 
 }

2.求二叉树的高度 Height=max(HL, HR)+1

int PostOrderGetHeight( BinTree BT ) {
 int HL, HR, MaxH;
if( BT ) {
HL = PostOrderGetHeight(BT->Left); /*求左子树的深度*/
HR = PostOrderGetHeight(BT->Right); /*求右子树的深度*/
MaxH = (HL > HR)? HL : HR; /*取左右子树较大的深度*/
return ( MaxH + 1 ); /*返回树的深度*/ }
else return 0; /* 空树深度为0 */
} 

3.二元运算表达式树及其遍历
叶结点表示运算数,非叶结点是运算符号在这里插入图片描述
中缀表达式会受到运算符优先级的影响,可以通过加括号来解决

4.由两种遍历序列确定二叉树(必须有中序遍历):
先序和中序来确定:
在这里插入图片描述
先序序列的第一个结点是根结点,可在中序序列中找到根结点,可以数出左子列有多少个元素,再到先序序列中分割出左子树,而分割出的左子树先序序列的第一个结点为左子树的根结点,继而到中序序列中找该结点

标签:左子,结点,应用,HR,BT,二叉树,HL
来源: https://blog.csdn.net/weixin_43797323/article/details/101357575