ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:226.67KB ,
资源ID:17046532      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17046532.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第6章测试题Word文档下载推荐.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第6章测试题Word文档下载推荐.docx

1、设给定权值总数有 n个,其哈夫曼树的结点总数为( DA .不确定 B . 2n+1C. 2nD. 2n-1(1)哈夫曼树没有度为1的结点.(2)且权值所在结点都是叶子.(3)二叉树中度为2的结点数比叶结点少17棵二叉树高度为 h,所有结点的度为0或2,则这棵树最少有(B )个结点。A 2hB 2h-1C. 2h+1D h+1&在一棵高度为k的满二叉树中,结点总数为(C)A 2k1B 2kC. 2k-1D log2k 19树的后根序遍历等同于该树对应的二叉树的(B)。A .先序序列二、填空题1二叉树由 根节点左子树右子树三个基本单元组成。2 树在计算机内的表示方式有 _双亲表示法 、孩子表示法、

2、孩子兄弟表示法。3 在二叉树中,指针 P所指结点为叶子结点的条件是_p-lchild=null &p-rchlid二二null4 二叉树中某一结点左子树的深度减去右子树的深度称为该结点的平衡因子5具有256个结点的完全二叉树的深度为6 .已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树有 12个叶子结点。个结点。7深度为k的二叉树至少有 2k-1 个结点,至多有 2k-1深度为H的完全二叉树至少有个结点,至多有 2已1结点,H和结点总数N之间的关系是 H=nog 2N +1_ 向下取整Iog2i=log2j9在完全二叉树中,编号为i和j的两个结点处于同一层的条件

3、是用顺序存储二叉树时,要按完全二叉树的形式存储,非完全二叉树存储时,要加“虚结点”。设编号为i和j的结点在顺序存储中的下标为s和t,则结点i和j 在同一层上的条件是Iog2s=log2t 。三、判断题1.二叉树是度为2的有序树。一棵度为二的有序树与一棵二叉树的区别在于:有序树的结点次序是相对于另一 结点而言的,如果有序树中的子树只有一个孩子时, 这个孩子结点就无须区分其 左右次序,而二叉树无论其孩子数是否为 2,均需确定其左右次序,也就是说二叉树的结点次序不是相对于另一结点而言而是确定的。2.完全二叉树一定存在度为 1的结点。k4.深度为k的二叉树中结点总数 -1。5.哈夫曼树肯定是一棵二叉树

4、。6.二叉树的遍历结果不是唯一的。7.二叉树的遍历只是为了在应用中找到一种线性次序。树的后根遍历和对应的二叉树的中序遍历次序一致。9.一个树的叶结点,在先序遍历和后序遍历下,皆以相同的相对位置出现。10.二叉树的先序遍历并不能唯一确定这棵树, 但是,如果我们还知道该树的根结点是哪个, 则可确定这棵二叉树。四、应用题1.从概念上讲,树、森林和二叉树是三种不同的数据结构,将树、森林转化为二叉树的基 本目的是什么,并指出树和二叉树的主要区别。I树的孩子兄弟链表表示法和二叉树二叉链表表示法, 本质是一样的,是解释不同,也就是说树(树是森林的特例,即森林中只有一棵树的特殊情况) 可用二叉树唯一表示,并可

5、使用二叉树的一些算法去解决树和森林中的问题。树和二叉树的区别有三:一是二叉树的度至多为 2,树无此限制;二是二叉树有左右子树之分,即使在只有一个分枝的情况下, 也必须指出是左子树还是右子树,树无此限制;三是二叉树允许为空,树一般不允许为空(个别书上 允许为空)。I2.请分析线性表、树、广义表的主要结构特点,以及相互的差异与关联。线性表属于约束最强的线性结构,在非空线性表中,只有一个“第一个”元 素,也只有一个“最后一个”元素;除第一个元素外,每个元素有唯一前驱;除 最后一个元素外,每个元素有唯一后继。树是一种层次结构,有且只有一个根结 点,每个结点可以有多个子女,但只有一个双亲(根无双亲),从

6、这个意义上说存在一(双亲)对多(子女)的关系。广义表中的元素既可以是原子,也可以是 子表,子表可以为它表共享。从表中套表意义上说,广义表也是层次结构。从逻 辑上讲,树和广义表均属非线性结构。但在以下意义上,又蜕变为线性结构。如 度为1的树,以及广义表中的元素都是原子时。另外,广义表从元素之间的关系 可看成前驱和后继,也符合线性表,但这时元素有原子,也有子表,即元素并不 属于同一数据对象。丨3.将算术表达式(a+b)+c*(d+e)+f)*(g+h)转化为二叉树。4.一个深度为L的的满二叉树有以下性质:第 L层上的结点都是叶子结点,其余各层上每各层的结点的数目是多少?编号为n的结点的双亲结点(若

7、存在)的编号是多少?编号为n的结点的第i个孩子结点(若存在)的编号是多少?编号为n的结点有右兄弟的条件是什么?如果有,其右兄弟的编号是多少?个结点都有K棵非空子树,如果按层次顺序从 1开始对全部结点进行编号,求:(1)(2)(3)(4) 请给出计算和推导过程。I【参考答案】I(1) kh-1(h 为层数)(2)因为该树每层上均有Kh-1个结点,从根开始编号为1,则结点i的从 右向左数第2个孩子的结点编号为 ki。设n为结点i的子女,则关系式(i-1)k+21)的前一结点编号为n-1 (其最右边子女编号是(n-1)*k+1 ),故结点n的第i个孩子的编号是(n-1)*k+1+i 。(4)根据以上

8、分析,结点n有右兄弟的条件是,它不是双亲的从右数的第 子女,即(n-1)%k!=0,其右兄弟编号是n+1。5.已知完全二叉树的第七层有 10个叶子结点,则整个二叉树的结点数最多是多少?235 I由于本题求二叉树的结点数最多是多少,第 7层共有27-1=64个结点,已知有10个叶子,其余54个结点均为分支结点。它在第八层上有 108个叶子结I点。所以该二叉树的结点数最多可达(27-1+108)=235 。(注意;本题并未明说完全二叉树的高度,但根据题意,只能 8层。)6棵共有n个结点的树,其中所有分支结点的度均为 K,求该树中叶子结点的个数。设分枝结点和叶子结点数分别是为 nk和n0,因此有n=

9、n0+nk (1)另外从树的分枝数B与结点的关系有n=B+仁K*nk +1由(1)和(2 )有 n0=n-nk=(n(K-1)+1)/K 丨7证明:在任何一棵非空二叉树中有下面的等式成立:叶子结点个数+1。证明 设度为1和2 及叶子结点数分别为 n0, n1和n2 ,则二叉树结点数 n 为 n=n0+n1+n2 (1)=度为2的结点个数再看二叉树的分支数,除根结点外,其余结点都有一个分支进入,设 B为分支总数,则n=B+1。度为1和2的结点各有1个和2个分支,度为0的结 点没有分支,故n=n 1+2n2+1 (2)由证明:序序列为(1)和(2),得 nO= n2+1由一棵二叉树的先序序列和中序

10、序列可唯一确定这棵二叉树。设一棵二叉树的先ABDGECFH,中序序列为:DGBEAFHC。试画出该二叉树。解释:因为由二叉树的先序序列和中序序列可以唯一地确定一棵二叉树,所以进而可以唯一地确定它的后序遍历。在先序遍历序列中,第一个结点一定是二叉树的根结点,而在中序遍历中,根结点必然将中序序列分割成两个子序列,前一个子序列就是左子树的中序序列, 后一个子序列就是右子树的中序序列。 根据这两个子序列的长度,可以在先序序列中找到对应的左子树先序序列和右子树先序序列。 而左子树先序序列的第一个结点是左子树的根结点, 右子树先序序列的第一个结点是右子树的根结点。如此递归地进行下去,便能唯一地确定这棵二叉

11、树。9.给定一组数列(15, 8, 10, 21 , 6, 19, 3)分别代表字符 A, B, C, D, E, F, G出 现的频度,试叙述建立哈夫曼树的算法思想, 画出哈夫曼树,给出各字符的编码值,并说明这种编码的优点。olO五、算法设计题1.要求二叉树按二叉链表形式存储;(1)写一个建立二叉树的算法。_ typ edef struct Node char data;struct Node *p Lchild; struct Node *p Rchild; j BTreeNode, *BTree;BTree CreateBTree(BTree T)/ 创建二叉树 char X;sea n

12、f(%c, &x);if (0 = x) T = NULL;elseT = (BTree) malloc (sizeof(BTreeNode); T->data = x;T-> ;p Lchild = CreateBTree(T-&p Lchild);p Rchild = CreateBTree(T -& pRchild); return T;L(2)写一个判别给定的二叉树是否是完全二叉树的算法。#i ncludevstdio.h#defi ne MaxNum10000*m=i;return(1+ nu m(t-Lchild,2*i,m)+nu m(t-Rchild,2*i+

13、1,m); rmai n()int datajnt tjnt ijnt *m:prlntffInput data:rscanf(%dl,Sidata);if(t=NULLprintKFnpiWTn2.有n个结点的完全二叉树存放在一维数组 A1.n中,试据此建立一棵用二叉链表表示的二叉树,根由tree指向。BiTree Crtat( ElernTyp* AC t int i) BtTiee tree;= sjz#of(BiNoJt);订就一(J他-AC* d 分lf( !.ntreenull;if(2 1, L-hln)UGCrchildnulhds trrcliUdOcatt p2 H1) i

14、(2 分)Z/Crtlchild,data,rchild ),设计一个算法3 .设一棵二叉树以二叉链表为存储结构,结点结构为( 将二叉树中所有结点的左、右子树相互交换。#in clude/*二叉树类型的定义(二叉链表形式储存)*/typ edef char datat ype; II 树的结点数据类型为字符型,可以根据需要修改typ edef struct n ode *p oi nter; II 定义二叉树结点类型struct node datat ype data; / 结点数据poi nter lchild,rchild; / 左右孩子结点;typ edef poi nter bitre

15、e; II 定义二叉树类型I*先根遍历交换左右子树 *II*层次遍历序列生成 *I const int maxsize=100;poin ter Qmaxsize+1;bitree level_creat() II 由层次序列建立二叉树,返回根指针char ch;int fron t,rear;poin ter root,s;root=NULL; II 置空二叉树fron t=rear=0; II 置空队列while(ci n ch,ch!=#) if(ch!) II 非虚结点,建立新结点s=new node;s-data=ch;lchild=s-rchild=NULL;else s=NULL

16、;rear+;第一个点是根,要修改头指针,他不是孩子Qrear=s; II不管结点是否为虚都要入队 if(rear=1) root=s; fron t=1; II是偶数,新结点是左孩子else if(s & Qfro nt) / 孩子和双亲都不是虚结点if(rear%2=0) Qfro nt-lchild=s; II rear elseQfron t-rchild=s; IIrear是奇数,新结点是右孩子fron t+;return root;/*交换左右子树 */ void excha nge(bitree t) poin ter p;交换if(t=NULL) return; / 空树,直接

17、返回p=t-lchild; t-lchild=t-rchild;rchild=p; /void mai n() bitree T=NULL; int ch;(输入为虚结点,输入 #结cout首先层次遍历序列生成二叉树,请输入结点数据束):n;T=level_creat();if(T=NULL) cout二叉树生成失败 Anelse cout 二叉树生成成功!AA: do菜单0.退出 n ch;switch(ch) case 0: break;case 1: T=level_creat(); cout 二叉树生成成功!case 2: exchange(T); 交换成功!case 3: p reorder(T);e ndl;default: 您输入错误!请重新输入goto AA;while(ch!=0);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1