1.选择题

(1)把一棵树转换为二叉树后,这棵二叉树的形态是(   )。

A.唯一的                          B.有多种

C.有多种,但根结点都没有左孩子    D.有多种,但根结点都没有右孩子

答案:A

解释:因为二叉树有左孩子、右孩子之分,故一棵树转换为二叉树后,这棵二叉树的形态是唯一的。

(2)由3个结点可以构造出多少种不同的二叉树?(    )

A.2          B.3             C.4          D.5

答案:D

解释:五种情况如下:

(3)一棵完全二叉树上有1001个结点,其中叶子结点的个数是(  )。

A.250         B. 500          C.254        D.501

答案:D

解释:设度为0结点(叶子结点)个数为A,度为1的结点个数为B,度为2的结点个数为C,有A=C+1,A+B+C=1001,可得2C+B=1000,由完全二叉树的性质可得B=0或1,又因为C为整数,所以B=0,C=500,A=501,即有501个叶子结点。

(4)一个具有1025个结点的二叉树的高h为(  )。

A.11          B.10             C.11至1025之间       D.10至1024之间

答案:C

解释:若每层仅有一个结点,则树高h为1025;且其最小树高为 ëlog21025û + 1=11,即h在11至1025之间。

(5)深度为h的满m叉树的第k层有(  )个结点。(1=<k=<h)

A.mk-1          B.mk-1            C.mh-1        D.mh-1

答案:A

解释:深度为h的满m叉树共有mh-1个结点,第k层有mk-1个结点。

(6)利用二叉链表存储树,则根结点的右指针是(  )。

A.指向最左孩子        B.指向最右孩子         C.空        D.非空

答案:C

解释:利用二叉链表存储树时,右指针指向兄弟结点,因为根节点没有兄弟结点,故根节点的右指针指向空。

(7)对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用(  )遍历实现编号。

A.先序         B. 中序           C. 后序       D. 从根开始按层次遍历

答案:C

解释:根据题意可知按照先左孩子、再右孩子、最后双亲结点的顺序遍历二叉树,即后序遍历二叉树。

(8)若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用(  )遍历方法最合适。

A.前序         B.中序            C.后序      D.按层次

答案:C

解释:后续遍历和层次遍历均可实现左右子树的交换,不过层次遍历的实现消耗比后续大,后序遍历方法最合适。

(9)在下列存储形式中,(  )不是树的存储形式?

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

答案:D

解释:树的存储结构有三种:双亲表示法、孩子表示法、孩子兄弟表示法,其中孩子兄弟表示法是常用的表示法,任意一棵树都能通过孩子兄弟表示法转换为二叉树进行存储。

(10)一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足(  )。

A.所有的结点均无左孩子        B.所有的结点均无右孩子

C.只有一个叶子结点            D.是任意一棵二叉树

答案:C

解释:因为先序遍历结果是“中左右”,后序遍历结果是“左右中”,当没有左子树时,就是“中右”和“右中”;当没有右子树时,就是“中左”和“左中”。则所有的结点均无左孩子或所有的结点均无右孩子均可,所以A、B不能选,又所有的结点均无左孩子与所有的结点均无右孩子时,均只有一个叶子结点,故选C。

(11)设哈夫曼树中有199个结点,则该哈夫曼树中有(    )个叶子结点。

A.99                         B.100

C.101                        D.102

答案:B

解释:在哈夫曼树中没有度为1的结点,只有度为0(叶子结点)和度为2的结点。设叶子结点的个数为n0,度为2的结点的个数为n2,由二叉树的性质n0=n2+1,则总结点数n= n0+n2=2*n0-1,得到n0=100。

(12)若X是二叉中序线索树中一个有左孩子的结点,且X不为根,则X的前驱为(  )。

A.X的双亲                      B.X的右子树中最左的结点

C.X的左子树中最右结点          D.X的左子树中最右叶结点

答案:C

(13)引入二叉线索树的目的是(  )。

A.加快查找结点的前驱或后继的速度    B.为了能在二叉树中方便的进行插入与删除

C.为了能方便的找到双亲              D.使二叉树的遍历结果唯一

答案:A

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

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

答案:C

(15)n(n≥2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是( )。

A.该树一定是一棵完全二叉树

B.树中一定没有度为1的结点

C.树中两个权值最小的结点一定是兄弟结点

D.树中任一非叶结点的权值一定不小于下一层任一结点的权值

答案:A

解释:哈夫曼树的构造过程是每次都选取权值最小的树作为左右子树构造一棵新的二叉树,所以树中一定没有度为1的结点、两个权值最小的结点一定是兄弟结点、任一非叶结点的权值一定不小于下一层任一结点的权值。

2.应用题

(1)试找出满足下列条件的二叉树

① 先序序列与后序序列相同    ②中序序列与后序序列相同

③ 先序序列与中序序列相同    ④中序序列与层次遍历序列相同

答案:先序遍历二叉树的顺序是“根—左子树—右子树”,中序遍历“左子树—根—右子树”,后序遍历顺序是:“左子树—右子树―根",根据以上原则有

① 或为空树,或为只有根结点的二叉树

②  或为空树,或为任一结点至多只有左子树的二叉树.

③  或为空树,或为任一结点至多只有右子树的二叉树.

④ 或为空树,或为任一结点至多只有右子树的二叉树

(2)设一棵二叉树的先序序列: A B D F C E G H ,中序序列: B F D A G E H C

①画出这棵二叉树。

②画出这棵二叉树的后序线索树。

③将这棵二叉树转换成对应的树(或森林)。

答案:

(3) 假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。

① 试为这8个字母设计赫夫曼编码。

② 试设计另一种由二进制表示的等长编码方案。

③ 对于上述实例,比较两种方案的优缺点。

答案:方案1;哈夫曼编码

先将概率放大100倍,以方便构造哈夫曼树。

w={7,19,2,6,32,3,21,10},按哈夫曼规则:【[(2,3),6], (7,10)】, ­……19, 21, 32

方案比较:

方案1的WPL=2(0.19+0.32+0.21)+4(0.07+0.06+0.10)+5(0.02+0.03)=1.44+0.92+0.25=2.61

方案2的WPL=3(0.19+0.32+0.21+0.07+0.06+0.10+0.02+0.03)=3

结论:哈夫曼编码优于等长二进制编码

(4)已知下列字符A、B、C、D、E、F、G的权值分别为3、12、7、4、2、8,11,试填写出其对应哈夫曼树HT的存储结构的初态和终态。

答案:

初态:

weight

parent

lchild

rchild

1

3

0

0

0

2

12

0

0

0

3

7

0

0

0

4

4

0

0

0

5

2

0

0

0

6

8

0

0

0

7

11

0

0

0

8

0

0

0

9

0

0

0

10

0

0

0

11

0

0

0

12

0

0

0

13

0

0

0

终态:

weight

parent

lchild

rchild

1

3

8

0

0

2

12

12

0

0

3

7

10

0

0

4

4

9

0

0

5

2

8

0

0

6

8

10

0

0

7

11

11

0

0

8

5

9

5

1

9

9

11

4

8

10

15

12

3

6

11

20

13

9

7

12

27

13

2

10

13

47

0

11

12

数据结构练习题——树和二叉树(含应用题)相关推荐

  1. 【数据结构】 树与二叉树的基本概念、结构特点及性质

    前言:本章内容主要是数据结构中树与二叉树的基本概念.结构特点及性质的引入. 文章目录 树的概念 树的特点: 树的常用术语: 树的表示: 代码创建: 树在实际中的应用: 二叉树的概念 特殊的二叉树 满二 ...

  2. 数据结构之树与二叉树

    数据结构之树与二叉树 1.树的概念及结构 1.1.什么是树? 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合.树是递归定义的.之所以把它叫做树是因为它看起来像 ...

  3. 【图解数据结构】树和二叉树全面总结(上)

    目录 一.前言 二.树的概念和定义 三.二叉树 1.基本概念 2.基本形态 3.性质 4.满二叉树 5.完全二叉树 四.存储结构 1.顺序存储 2.二叉链表 3.三叉链表 一.前言 学习目标:理解树和 ...

  4. 【C语言 - 数据结构】树、二叉树(上篇)

    树是计算机算法最重要的非线性结构.因为树能很好地描述结构的分支关系和层次特性,所以在计算机科学和计算机应用领域有着广泛的应用.这篇文章我就带大家一起了解一下树.二叉树这种结构,下篇文章会重点向大家介绍 ...

  5. 数据结构(树与二叉树)

    5.1.1树和二叉树的定义 树:是n(n>=0)个结点的有限集,或为空树(n==0),或为非空树 非空树满足:1.有且仅有一个称之为根的结点                           ...

  6. 数据结构-王道-树和二叉树

    [top] 树和二叉树 树:是\(N(N\geq0)\)个结点的有限集合,\(N=0\)时,称为空树,这是一种特殊情况.在任意一棵非空树中应满足: 有且仅有一个特定的称为根的结点. 当\(N>1 ...

  7. 天勤数据结构:树与二叉树(图解二叉树的三种遍历方式执行流程,超详细)

    数据结构(第六章) 树与二叉树 1. 树与二叉树的相互转换 2. 森林与二叉树的相互转换 3. 二叉树的遍历 3.1 层序遍历(广度优先遍历) 2. 深度优先遍历 3. 树转化为二叉树的遍历 将一颗 ...

  8. 数据结构06树和二叉树

    第六章 树和二叉树 6.1 树的定义和基本术语 树 Tree 是n个结点的有限集. 任意一棵非空树中: (1)有且仅有一个特定的称为根(root)的结点: (2)当n>1时,其余结点可分为m(m ...

  9. 数据结构 5-0 树与二叉树总结

    前言 数据结构复习过程中最先遭遇的磕碰,这一章内容及其多,而且可以考得很难,不仅是代码题,填空题有些也很有难度.主要是四部分内容:树的基本概念.二叉树.树与森林.树的应用.题目以选择题为主,因为代码题 ...

  10. 数据结构测试题——树和二叉树(一)

    第五章 树和二叉树 (一) 一.判断题. (  T )1.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n-1个非空指针域. (  F )2.二叉树中每个结点的两棵子树的高度差等于1. ...

最新文章

  1. Visual Studio Code 常用快捷键
  2. 优秀的博客与文章总结链接地址
  3. 运行管理员线程和用户线程小练习
  4. java百度云推送demo_百度云推送java服务端maven安装完整demo
  5. Android-广播接收者简介
  6. php strstr 效率,PHP中的stristr(),strstr(),strpos()速度比较
  7. Hangfire定时触发作业,好像很简单?
  8. html中的保存功能代码怎么写,java保存html代码怎么写
  9. JVM系列(三)— Java内存模型
  10. javaScript——原型
  11. 记录——《C Primer Plus (第五版)》第十章编程练习第九题
  12. Oracle与Google两IT巨头战争冲击整个硅谷
  13. 用arduinoUNO做温度计
  14. 解决 Performing stop of activity that is not resumed 报错!!
  15. javascript构造函数
  16. 本周AI热点回顾:意念打字登Nature封面,准确率超99%;前馈网络+线性交互层=残差MLP,纯MLP图像分类架构入场...
  17. 6.1. Inserting Data
  18. 技术人要有一些兴趣爱好
  19. splice添加、替换、删除数组元素
  20. 【解决方案】“云端协同”,基于安防视频云服务EasyCVR构建雪亮工程监管视频平台

热门文章

  1. 100万“音乐难民”陪伴虾米到最后一刻
  2. 数据采集时总提示未登录_2月1日起,海关进口增值税专用缴款书数据采集规则大变,请知悉!...
  3. fydeos 安装linux程序,FydeOS安装教程-电脑系统安装手册
  4. win10街头篮球服务器连接中断,win10系统玩街头篮球游戏老掉线的修复技巧
  5. 上twitter_如何在Twitter上找到重大新闻
  6. PTA 1096 大美数(Python3)
  7. 计算机简史:你想不通去脉,是因为不了解来龙
  8. digit计算机语言,计算机英语:BASIC语言入门
  9. 华为手机root的最简单方法教程!附专用root工具!详细
  10. linux中getchar函数用法,linux getchar函数使用