五树及二叉树练习题

五树及二叉树练习题

ID:20486615

大小:25.00 KB

页数:3页

时间:2018-10-12

五树及二叉树练习题_第1页
五树及二叉树练习题_第2页
五树及二叉树练习题_第3页
资源描述:

《五树及二叉树练习题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、树与二叉树练习题(五)习题2010-05-2517:27:01阅读55评论0字号:大中小1.己知二叉树采用二叉链表方式存放,要求返回二叉树T的后序序列中的第一个结点的指针,是否可以不用递归且不用栈来完成?请说明原因。2.具有n个结点的满二叉树的叶子结点的个数是多少?说明理由。3.列出先序遍历能得到ABC序列的所有不同的二又树。4.画出同时满足下列两个条件的两棵不同的二叉树:(1) 按先序遍历二叉树顺序为ABCDE;(2) 高度为5,其对应的树(森林)的高度最大为4。5.对于表达式(a-b+c)*d/(e+f)(1) 画出它的中序

2、二叉树,并标出该二叉树的前序线索;(2) 给出它的前缀表达式和后缀表达式。6.试找出分别满足下列条件的所有二叉树:(1) 先序序列和中序序列相同;(2) 中序序列和后序序列相同;(3) 先序序列和后序序列相同。 7.阅读下列算法的描述,根据算法的要求,在相应的空格处写出正确合理的语句。后序遍历二叉树的非递归算法,bt是二叉树的根,S是一个栈,MaxSize是栈的最大容量。typedefstructNode{        BTNode *[MaxSize+1];        int  top;}stacktyp;voidPos

3、tOrder(BTNode*bt){ BTNode *p,*q=bt; stacktyp S; int  flag; S.top=-1; do{  while(q!=NULL){   S.top++;   if(S.top>MaxSize){    printf("StackFull!");    exit(0);   }   else    S.data[S.top]=q;   _______①_____;  }  flag=1;   p=NULL;  while(S.top!=-1 &&flag){   q=S.data[S

4、.top];   if(_________②__________){    printf(q->data);    S.to--;    p=q;   }   else{   _________③__________;   flag=0;   }  } }while(__________④__________);} 8.具有n个结点的完全二又树,已经顺序存储在一维数组A[n]中,下面算法是将A中顺序存储变成二叉链表存储的完全二又树。请在空缺处填入适当语句,以完成上述算法。Elemtype A[n];voidCreatTree(B

5、TNode*T,inti){ _________①_________; T->data=A[i]; if(________②________)  CreatTree(_______③________); else  r->lchild=NULL; if(_________④_________)  CreatTree(_______⑤________); else  r->rchild=NULL;}voidBTree(ara,BTNOde*p){ int j; j=________⑥__________; CreatTree(p,

6、j);} 9.二叉树采用二叉链表存储结构,试设计算法计算一棵给定二叉树的各结点的子孙个数。10.一棵具有n个结点的完全二叉树,以一维数组作为存储结构,试设计一个对该完全二叉树进行前序遍历的算法。11.已知一棵二叉树的前序遍历序列和中序遍历序列,编写算法建立对应的二叉树。12.编写一个算法,利用叶子结点中的空指针域,将所有叶子结点链接为一个带有头结点的单链表,算法返回头结点的地址。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。