第6章 树和二叉树(2)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

云南大学信息学院计算机科学与工程系《数据结构》课后作业

第2套第6章树和二叉树

一、选择题

1. 有n个叶子的哈夫曼树的结点总数为()。

A.不确定 B.2n C.2n+1 D.2n-1

2.在下列存储形式中,哪一个不是树的存储形式?()

A.双亲表示法 B.孩子链表表示法 C.孩子兄弟表示法 D.顺序存储表示法

3.将一棵树t 转换为孩子—兄弟链表表示的二叉树h,则t的后根序遍历是h 的A.前序遍历 B.中序遍历 C.后序遍历()

4.n个结点的线索二叉树上含有的线索数为()

A.2n B.n-l C.n+l D.n

5.()的遍历仍需要栈的支持.

A.前序线索树 B.中序线索树 C.后序线索树

6. 设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针域为空的结点有()个。

A. n-1 B.n C. n+1 D. n+2

7.下面几个符号串编码集合中,不是前缀编码的是()。

A.{0,10,110,1111} B.{11,10,001,101,0001}

C.{00,010,0110,1000} D.{b,c,aa,ac,aba,abb,abc}

二、判断题

1.任何一棵二叉树都可以不用栈实现前序线索树的前序遍历。

2. 用链表(llink-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n-1个空指针。

3. 在中序线索二叉树中,每一非空的线索均指向其祖先结点。

4.霍夫曼树的结点个数不能是偶数。

5.哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。

三、填空题

1.树在计算机内的表示方式有_(1)__,_(2)__,_(3)__。

2.每一棵树都能唯一的转换为它所对应的二叉树。若已知一棵二叉树的前序序列是BEFCGDH,对称序列是FEBGCHD,则它的后序序列是_(1)__。设上述二叉树是由某棵树转换而成,则该树的先根次序序列是_(2)__。

3.线索二元树的左线索指向其______,右线索指向其______。

4.若以{4,5,6,7,8}作为叶子结点的权值构造哈夫曼树,则其带权路径长度是______。

5.将二叉树bt中每一个结点的左右子树互换的C语言算法如下,其中ADDQ(Q,bt),DELQ(Q),EMPTY(Q)分别为进队,出队和判别队列是否为空的函数,请填写算法中得空白处,完成其功能。

typedef struct node

{int data ; struct node *lchild, *rchild; }btnode;

void EXCHANGE(btnode *bt)

{btnode *p, *q;

if (bt){ADDQ(Q,bt);

while(!EMPTY(Q))

{p=DELQ(Q); q=(1)___; p->rchild=(2)___; (3)___=q;

if(p->lchild) (4)___; if(p->rchild) (5)___;

}

} }//

四、应用题

1.从概念上讲,树,森林和二叉树是三种不同的数据结构,将树,森林转化为二叉树的基本目的是什么,并指出树和二叉树的主要区别。

2.一棵二叉树的先序、中序、后序序列如下,其中一部分未标出,请构造出该二叉树。先序序列:_ _ C D E _ G H I _ K

中序序列:C B _ _ F A _ J K I G

后序序列:_ E F D B _ J I H _ A

3.在二叉树的Llink-Rlink存储表示中,引入“线索”的好处是什么?

4.设有正文AADBAACACCDACACAAD,字符集为A,B,C,D,设计一套二进制编码,使得上述正文的编码最短。

五、算法设计题

1.编程求以孩子—兄弟表示法存储的森林的叶子结点数。要求描述结构。

2.假设以双亲表示法作树的存储结构,写出双亲表示的类型说明,并编写求给定的树的深度的算法。(注:已知树中结点数)

相关文档
最新文档