数据结构习题11级用 下载本文

A. p!=UNLL B. p->lchild!=NULL C. p->ltag==0 D. p->ltag==1

二、填空题

1. 具有n个结点的完全二叉树的深度为 。 2. 二叉树第i层上最多有 个结点。 3. 深度为k的二叉树最多有 个结点。

4.具有n个结点的二叉树的最小深度为 ,最大深度为 ;具有具有n个结点的度为2的树的最小深度为 ,最大深度为 。 5.具有m个叶结点的huffman树共有 个结点。

6.完全二叉树T按顺序存放,编号依次为1,2,...,n,则编号为i的结点左孩子如果存在的话,其编号为 。

7.在一棵二叉树中,度为0的结点个数为n0,度为2的个数为n2,则n0= 。 8.三个结点a,b,C.组成二叉树,共有 种不同的结构。

9. 一颗树T中,包括1个度为1的结点,2个度为2的结点,3个度为3的结点,则T的叶子结点数为 。

10.已知某完全二叉树采用顺序存储结构,结点的存放顺序为(A,B,C,D,E,F,G,H,I,J),该完全二叉树的后根遍历序列为 。 11.前序遍历序列是abc且后序遍历序列为cba的二叉树共有 棵。

12. F是由T1, T2, T3三棵树组成的森林,T1, T2, T3 的结点数分别为n1,n2,n3,则F对应的二叉树B(F)的根的左子树中结点数为 ,根的右子树中的结点数为 。

三、基础知识题

1.已知一棵树遍的集合为{,,,,, , ,

,,,,,}, 请画出这棵树,并回答下列问题: (1) 哪个是根结点? (2) 哪些是叶子结点? (3) 哪个是结点g的双亲? (4) 哪些是结点g的祖先? (5) 哪些是结点g的孩子? (6) 哪些是结点e的子孙?

(7) 哪些是结点e的兄弟?哪些是结点f的兄弟? (8) 结点b和n的层次号分别是什么?

30

(9) 树的深度是多少?

(10) 以结点c为根的子树的深度是多少? (11) 树的度数是多少?

2.试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。

3.已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,?,nk个度为k

的结点,问该树中有多少个叶子结点?

4.对题2所得各种形态的二叉树,分别写出前序、中序和后序遍历的序列。 5.现有按先序遍历二叉树的结点序列为abc,试写出能得到这一遍历结果的各种二

叉树。

6.一棵非空的二叉树其先序序列和后序序列正好相反,说明这棵二叉树的形状。 7.分别画出和下列树对应的二叉树。

A B

8.画出和下列二叉树相应的森林。

A B

9.以数据集{4,5,6,7,10,12,18}为结点权值构造的Huffman树,并求其带权

路径长度。

10.假设一棵二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK,请画出

31

该树并给出其后序序列。

12. 已知某二叉树按后序遍历序列为CEDBHJIGFA,按中序遍历序列为CBEDAHGIJF,

试画出该二叉树形状(要求写出中间过程), 并写出它的先序遍历序列。 13. 设a,b,c,d,e,f六个字母出现的次数分别为7,19,2,6,32,3,试为这六个字母设

计huffman编码并画出对应huffman树。

14. 对给出的数据序列4,5,6,7,10,12,15,18,23,构造一棵huffman树,并求其带

权路径长度。

15.设a,b,c,d,e,f,g,h,i九个字母出现的次数分别为4,5,6,7,10,12,15, 18,23,

构造一棵huffman树,并给出每个字符的huffman编码。

16. 设一棵二叉树的先序、中序遍历序列分别为EBADCFHGIKJ和ABCDEFGHIJK,要求:

(1) 画出该二叉树(要求写出中间步骤); (2)将这棵二叉树转换成对应的树(或森林)。

17.设一份电文中a,b,c,d,e,f,g,h八个字母出现的次数分别为7,19,2,6,32,3,21,

10, 要求: (1) 为每个字母设计huffman编码, (2) 给出八个字母二进制表示的等长编码并比较两方案的优缺点。

18.证明:由一棵二叉树的先序序列和中序序列可唯一确定这棵二叉树。

19. 证明一棵二叉树无论进行先序、中序或后序遍历,其叶结点的相对次序不发生改

变。

四、算法设计题

1.试给出二叉树先序遍历的非递归形式的算法。 2.试写出按层次遍历二叉树的算法。

3.以二叉链表作存储结构,试编写求二叉树深度的算法。

4.设一棵二叉树以二叉链表存储,试设计算法求此二叉树上叶子结点个数。 5.设一棵二叉树以二叉链表存储,试设计算法求此二叉树上度为2的结点个数。 6.试编写算法,对一棵以孩子-兄弟链表表示的树统计叶子结点个数。 7.设计一个算法,统计二叉树中 等于给定值x的结点个数。 8.设计一个算法,从一棵二叉树中查找出所有结点的最大值。 9.编写递归算法,将二叉树中所有结点的左、右子树相互交换。

10.编写求任意二叉树中一条最长的路径的算法,要求输出此路径上各结点的值及路径的长度。

11.设一棵树以孩子-兄弟表示法存储,试编写计算树的深度的算法。

32

第七章 图

一、选择题

1.具有4个顶点的无向完全图有( )条边。 A. 6 B.12 C. 16 D. 20

2.对于具有n个顶点的连通无向图,其边的个数至少为( )。 A. n-1 B.n C. n+1 D. nlogn

3.G是一个非连通无向图,共有28条边,则该图至少有( )个顶点。 A. 6 B.7 C. 8 D. 9

4.对于具有n个顶点的强连通图,其弧条数的最小值为( )。 A. n+1 B.n C. n-1 D. n-2

5. 在一个图中,所有顶点的度数之和等于所有边数的( )倍;在一个有向图中,

所有顶点的入度之和等于所有顶点出度之和的( )倍。 A. 1/2 B. 2 C. 1 D. 4

6.图的深度、广度优先遍历算法分别类似于二叉树的( )。

A. 先序遍历和中序遍历 C. 后序遍历和中序遍历

B. 先序遍历和层序遍历

D. 层序遍历和先序遍历

7. 有n个顶点e条边的无向图G,它的邻接表中的表结点总数是( ) A. 2n B.n C. 2e D. e

8. 连通图G中有n个顶点,G的生成树是( )连通子图.

A. 包含G的所有顶点 B. 不必包含G的所有顶点 C. 包含G的所有边 D. 包含G的所有顶点和所有边 9. 下面关于图的存储的叙述中正确的是( )

A.用相邻矩阵法存储图,占用的存储空间大小只与图中结点个数有关,而与边

数无关

B.用相邻矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个

数无关

C.用邻接表法存储图,占用的存储空间大小只与图中结点个数有关,而与边数

无关

D.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数

无关

10.对一个具有n个顶点和e条边的无向图,若采用邻接表存储,则表结点数是( ⒀ )。 A. n+e B. 2e C. e D. n

11.设图G用邻接表存储,则拓扑排序的时间复杂度为( )。

33