- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第章习题的的答案
习题6
1.树与二叉树之间有什么区别与联系?
解:树与二叉树逻辑上都是树形结构,区别有三点:
(1)二叉树的度至多为2,树无此限制。
(2)二叉树有左右子树之分,树无此限制。
(3)二叉树允许为空,树一般不允许为空。
二叉树不是树的特例。
2.高度为的完全二叉树至少有多少个结点?至多有多少个结点?
解:至少有个结点,至多有个结点。和结点数之间的关系是??+1。
3.已知A[1..n]是一棵顺序存储的完全二叉树,如何求出A[i]和A[j]的最近的共同祖先?
解:根据顺序存储的完全二叉树的性质,编号为i的结点的双亲的编号为?i/2?,故A[i]和A[j]的最近的共同祖先可如下求出:
while(i/2!j/2)
if(ij)i=i/2;
else j=j/2;
退出while后,若i/2=0,则最近共同祖先为根结点,否则共同祖先为i/2。
4.已知A[1..n]是一棵顺序存储的完全二叉树,求序号最小的叶子结点的下标。
解:根据完全二叉树的性质,最后一个结点(编号为n)的双亲结点的编号是?n/2?,这是最后一个分支结点,在它之后是第一个叶子结点,故序号最小的叶子结点的下标是?n/2?+1。
5.一棵深度为L的满k叉树有以下性质:第L层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树,如果按层次顺序从1开始对全部结点进行编号,求:
(1)各层的结点数是多少?
(2)编号为n的结点的双亲结点(若存在)的编号是多少?
(3)编号为n的结点的第i个孩子结点(若存在)的编号是多少?
(4)编号为n的结点有左右兄弟结点的条件是什么?如果有,其右兄弟结点的编号是多少?
解:(1)kh-1(h为层数)。
(2)因为该树上每层上均有kh-1个结点,从根开始编号为1,则结点i的从右向左数第2个孩子的结点编号为ki。设n为结点i的子女,则关系式(i-1)*k+2ni*k+1成立,因i是整数,故结点n的双亲i的编号为?n/k?+1。
(3)结点(n1)的前一结点编号为n-1(其最右边子女编号是(n-1)*k+1),故结点n的第i个孩子的编号是(n-1)*k+1+i。
(4)根据以上分析,结点n有右兄弟的条件是,它不仅双亲的从右边的第一个子女,即(n-1)%k!=0,其右兄弟编号是n+1。
6.试证明,在具有n(n≥1)个结点的m叉树中,有n(m-1)+1个指针域是空的。
解:具有n个结点的m叉树共用n*m个指针。除根结点外,其余n-1个结点均有指针所指,故空指针数为n*m-(n-1)=n*(m-1)+1。
7.试找出满足下列条件的二叉树:
(1)先序序列与后序序列相同;
(2)中序序列与后序序列相同;
(3)先序序列与中序序列相同;
(4)中序序列与层次遍历序列相同。
解:(1)若先序序列与后序序列相同,则或为空树,或为只有根结点的二叉树。
(2)若中序序列与后序序列相同,则或为空树,或为任一结点至多只有左子树的二叉树。
(3)若先序序列与中序序列相同,则或为空树,或为任一结点至多只有右子树的二叉树。
(4)若中序序列与层次遍历序列相同,则或为空树,或为任一结点至多只有右子树的二叉树。
8.设有一棵二叉树的层次遍历序列为ABCDEFGHIJ,中序遍历序列为DBGEHJACIF。请画出这棵二叉树。
解:按层次遍历,第一个结点(树不空)为根,该结点在中序序列中把序列分成左右两部分——左子树和右子树。若左子树不空,层次序列中第二个结点为左子树的根;若左子树为空,则层次序列中第二个结点为右子树的根。对右子树分析类似。层次序列的特点是:从左到右每个结点或是当前情况下子树的根或是叶子。
9.用一维数组存放一棵完全二叉树:ABCDEFGHIJKL。请写出后序遍历该二叉树的访问结点序列。
解:HIDJKEBLFGCA。
10.已知一棵二叉树的中序遍历序列为DGBAECHIF,后序遍历序列为:GDBEIHFCA。
(1)试画出该二叉树;
(2)试画出该二叉树的中序线索树;
(3)试画出该二叉树对应的森林。
解:(1)
(2)略
(3)
11.设有正文AADBAACACCDACACAAD,字符集为A、B、C、D,设计一套二进制编码,使得上述正文的编码最短。
解:字符A、B、C、D出现的次数为9、1、5、3。其哈夫曼编码如下:
A:1,B:000,C:01,D:001。
其哈夫曼树为:
12.假设一个仅包含二元运算符的算术表达式以链表形式存储在二叉树T中,写出计算该算术表达式值的算法。
解:typedef struct Node{
ElemType data;
float val;
char optr;//只取+、-、*、/
struct Node *lchild,*rchild
}BiNode,*BiTree;
文档评论(0)