首页 > 学院 > 开发设计 > 正文

二叉树的应用问题

2019-11-08 20:39:30
字体:
来源:转载
供稿:网友

【例】遍历二叉树的应用:输出二叉树中的叶子结点。

typedef struct TreeNode *BinTree;typedef BinTree Position; struct TreeNode{ElementType Data;BinTree Left;BinTree Right; }; BinTree BT;

void PReOrderPrintLeaves(BinTree BT)//例如先序遍历来判断左右子树是否都为空 {if(BT){if(!BT->Left&&!BT->Right)//增加检测结点 printf("%d",BT->Data);PreOrderPrintLeaves(BT->Left);PreOrderPrintLeaves(BT->Right);}}

【例】求二叉树的高度。

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  }

【例】二元运算表达式树及其遍历

【例】由两种遍历序列确定二叉树 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表