好文档 - 专业文书写作范文服务资料分享网站

数据结构试题库及答案

天下 分享 时间: 加入收藏 我要投稿 点赞

?A、 A*B+C/D—E+F? B、 AB*C+D/E—F+? C、 ABC+*DE—F+/? D、 ABCDED*+/-+

14、在线索二叉树中,t所指结点没有左子树得充要条件就是( ).

A、 t—〉left==NULL ??B、 t—>ltag==1? C、 t—>ltag==1&&t->left==NULL D、 以上都不对

15、任何一棵二叉树得叶结点在先序、中序与后序遍历序列中得相对次序( )。

A、 不发生改变 ???B、 发生改变 ?C、 不能确定 ? D、 以上都不对 16、假定在一棵二叉树中,度为2得结点数为15,度为1得结点数为30,则叶子结点数为( )个。 A、 15 ?B、 16??C、 17 ?D、 47 17、在下列情况中,可称为二叉树得就是( B )。 A、 每个结点至多有两棵子树得树 ??B、 哈夫曼树 ??

C、 每个结点至多有两棵子树得有序树?? D、 每个结点只有一棵子树

18、用顺序存储得方法,将完全二叉树中所有结点按层逐个从左到右得顺序存放在一维数组R[1、、n]中,若结点R[i]有左孩子,则其左孩子就是( )。

A、 R[2i—1] B、 R[2i+1]? ?C、 R[2i]? ?D、 R[2/i]

19、下面说法中正确得就是( )。

A、 度为2得树就是二叉树 ??? B、 度为2得有序树就是二叉树 ?

C、 子树有严格左右之分得树就是二叉树??? D、 子树有严格左右之分,且度不超过2得树就是二叉树

20、树得先根序列等同于与该树对应得二叉树得( )。

A、 先序序列 B、 中序序列 ? C、 后序序列 D、 层序序列

21、按照二叉树得定义,具有3个结点得二叉树有( C )种。

A、 3 B、 4 ?C、 5??D、 6

22、由权值为3,6,7,2,5得叶子结点生成一棵哈夫曼树,它得带权路径长度为( A )。

A、 51????B、 23 ??C、 53 D、 74 二、判断题

( )1、存在这样得二叉树,对它采用任何次序得遍历,结果相同。

( )2、中序遍历一棵二叉排序树得结点,可得到排好序得结点序列。

( )3、对于任意非空二叉树,要设计其后序遍历得非递归算法而不使用堆栈结构,最适合得方法就是对该二叉树采用三叉链表。

( )4、在哈夫曼编码中,当两个字符出现得频率相同时,其编码也相同,对于这种情况应做特殊处理。

(√ )5、一个含有n个结点得完全二叉树,它得高度就是?log2n?+1。 (√ )6、完全二叉树得某结点若无左孩子,则它必就是叶结点。 三、填空题

1、具有n个结点得完全二叉树得深度就是 ?log2n?+1 .

2、哈夫曼树就是其树得带权路径长度 最小 得二叉树。

3、在一棵二叉树中,度为0得结点得个数就是n0,度为2得结点得个数为n2,则有n0= N2+1 。

4、树内各结点度得 最大值 称为树得度。 四、代码填空题

1、函数InOrderTraverse(Bitree bt)实现二叉树得中序遍历,请在空格处将算法补充完整。 void InOrderTraverse(BiTree bt){ ? if( ){ ? ?InOrderTraverse(bt—〉lchild); ?? printf(“%c”,bt—〉data); ?? ; ??}

?}

2、函数depth实现返回二叉树得高度,请在空格处将算法补充完整。 int depth(Bitree *t){ ??if(t==NULL) ?? return 0; else{ ??hl=depth(t—>lchild);

???hr= depth(t—〉rchild) ; ???if( hl〉hr ) ?? return hl+1; ? ?else ? return hr+1; ???} ?}

3、写出下面算法得功能。 Bitree *function(Bitree *bt){ Bitree *t,*t1,*t2; if(bt==NULL) ??t=NULL; ?else{ ??t=(Bitree *)malloc(sizeof(Bitree)); ???t—〉data=bt-〉data; ? ?t1=function(bt->left); ?? t2=function(bt-〉right); ???t->left=t2;

???t—〉right=t1; } ? return(t); }

答案:交换二叉树结点左右子树得递归算法 4、写出下面算法得功能.

void function(Bitree *t){ if(p!=NULL){ function(p—〉lchild); function(p->rchild); printf(“%d”,p-〉data);

} }

答案:二叉树后序遍历递归算法 五、综合题

1、假设以有序对<p,c〉表示从双亲结点到孩子结点得一条边,若已知树中边得集合为{〈a,b〉,<a,d>,,〈c,f>,,<c,h>,

(1)哪个结点就是根结点? (2)哪些结点就是叶子结点? (3)哪些结点就是k得祖先? (4)哪些结点就是j得兄弟? (5)树得深度就是多少?。

2、假设一棵二叉树得先序序列为EBADCFHGIKJ,中序序列为ABCDEFGHIJK,请画出该二叉树.

3、假设用于通讯得电文仅由8个字母A、B、C、D、E、F、G、H组成,字母在电文中出现得频率分别为:0、07,0、19,0、02,0、06,0、32,0、03,0、21,0、10。请为这8个字母设计哈夫曼编码。

10001A 000B 10138010621C 10000170121G032301ED 1001E 11F 10001G 01H 0017A10H01116D19B50123CF答案:

4、已知二叉树得先序遍历序列为ABCDEFGH,中序遍历序列为CBEDFAGH,画出二叉树。

答案:二叉树形态

ABCEDFGH

5、试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树得带权路径长度。 答案:

301218743125116

WPL=12*1+(4+5+6)*3+(1+2)*4=12+45+12=69

6、已知权值集合为{5,7,2,3,6,9},要求给出哈夫曼树,并计算带权路径长度WPL。 答案:(1)树形态:

321367919105523

(2)带权路径长度:WPL=(6+7+9)*2+5*3+(2+3)*4=44+15+20=79

7、已知一棵二叉树得先序序列:ABDGJEHCFIKL;中序序列:DJGBEHACKILF.画出二叉树得形态。

ABDGJEHKILCF答案:

8、一份电文中有6种字符:A,B,C,D,E,F,它们得出现频率依次为16,5,9,3,30,1,完成问题:

(1)设计一棵哈夫曼树;(画出其树结构) (2)计算其带权路径长度WPL; 答案:(1)树形态:

6430341618995413

(2)带权路径长度:WPL=30*1+16*2+9*3+5*4+(1+3)*5=30+32+27+20+20=129 9、已知某森林得二叉树如下所示,试画出它所表示得森林。

ABCEDHFG答案:

ABC DEGFH

10、有一分电文共使用5个字符;a,b,c,d,e,它们得出现频率依次为4、7、5、2、9,试构造哈夫曼树,并给出每个字符得哈夫曼编码。

11、画出与下图所示得森林相对应得二叉树,并指出森林中得叶子结点在二叉树中具有什么特点。

ABCDIJMNEFGKL

12、如下所示得二叉树,请写出先序、中序、后序遍历得序列.

答案:先序:FDBACEGIHJ

中序:ABCDEFGHIJ 后序:ACBEDHJIGF 六、编程题

1、编写求一棵二叉树中结点总数得算法。 答案: (以先序遍历得方法为例)

void count_preorder(Bitree *t, int *n) {

if(t!=NULL)

{*n++;

count_preorder(t-〉lchild);

count_preorder(t—〉lchild); }

}

H第七章 图

一、选择题

1、12、对于具有n个顶点得图,若采用邻接矩阵表示,则该矩阵得大小为( )。

A、 n ? ?B、 n2 C、 n—1 ? D、 (n-1)2 2、如果从无向图得任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定就是( ).

A、 完全图?? B、 连通图 C、 有回路? D、 一棵树 3、关键路径就是事件结点网络中( )。

A、 从源点到汇点得最长路径 ? B、 从源点到汇点得最短路径? C、 最长得回路 ??D、 最短得回路 4、下面( )可以判断出一个有向图中就是否有环(回路)。 ?A、 广度优先遍历? ???B、 拓扑排序? ??

C、 求最短路径 ? D、 求关键路径

5、带权有向图G用邻接矩阵A存储,则顶点i得入度等于A中( ). ?A、 第i行非无穷得元素之与 ?B、 第i列非无穷得元素个数之与

C、 第i行非无穷且非0得元素个数? D、 第i行与第i列非无穷且非0得元素之与 6、采用邻接表存储得图,其深度优先遍历类似于二叉树得( )。

A、 中序遍历 B、 先序遍历 ?C、 后序遍历 ?D、 按层次遍历 7、无向图得邻接矩阵就是一个( )。

A、 对称矩阵 B、 零矩阵 ?? C、 上三角矩阵 D、 对角矩阵 8、当利用大小为N得数组存储循环队列时,该队列得最大长度就是( )。

A、 N—2 B、 N—1?? ?C、 N? ??D、 N+1 9、邻接表就是图得一种( ).

A、 顺序存储结构 B、 链式存储结构 C、 索引存储结构 D、 散列存储结构 10、下面有向图所示得拓扑排序得结果序列就是( )。

A、 125634 ??B、 516234 C、 123456 ?D、 521643

11、在无向图中定义顶点vi与vj之间得路径为从vi到vj得一个( )。 A、 顶点序列 B、 边序列 ? C、 权值总与 D、

数据结构试题库及答案

?A、A*B+C/D—E+F?B、AB*C+D/E—F+?C、ABC+*DE—F+/?D、ABCDED*+/-+14、在线索二叉树中,t所指结点没有左子树得充要条件就是().A、t—〉left==NULL??B、t—>ltag==1?C、t—>ltag==1&&t->left==NULLD、以上都不对15、
推荐度:
点击下载文档文档为doc格式
94pes1a9zx7l7tx29ybm0wacw0f2i000g7x
领取福利

微信扫码领取福利

微信扫码分享