数据结构复习题答案

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

T P124 性质 3:对任何一棵二叉树 T,如果其终端结点数为 n0,度为 2 的结点数为 n2,则 n0=n2+1。 18、( T )能采用折半查找法进行查找的查找表必须是有序并为顺序存储。
19、(
)若一棵二叉树中不存在度为 1 的结点,则该二叉树一定是一棵完全二叉树。
1/7
数据结构复习题
NCUT-- 2013-01-06
13、( )当初始序列为逆序时,简单选择排序的比较次数达到最多。
F 比较次数不变。 14、( T )在单链表表示的线性表中,取线性表第 i 个元素操作的时间复杂度为 O(n)(n
为链表长度)。
15、( T )具有 n 结点的二叉树,其最大深度为 n。
16、( )在具有 13 个叶子结点的二叉树中,其度为 2 的结点个数一定为 12。
p->prior->next=p->next; p->next->prior=p->prior; free(p); 6、设 p 指针指向一个单链表中的某个结点(p≠NULL),则删除 p 指针所指结点和删除 p 指
针所指结点的后继结点的时间复杂度分别是多少?
O(n); O(1) 7、以关键字序列(25,50,15,35,80,85,20,40, 36, 70)为例,利用归并排序方法对
P144 哈夫曼树(最优二叉树):假设有 n 个权值{w1,w2,…,wn},试构造一棵有 n 个叶
子结点的二叉树,每个叶子结点带权为 wi,则其中带权路径长度 WPL 最小的二叉树 称作最优二叉树或 赫夫曼树。
3、( )选择排序是一种稳定的排序方法。 F 不稳定
4、( T )在顺序存储结构的线性表中,取第 i 个元素操作的时间复杂度为 O(1)。 6、( F )在按值有序的线性链表中可以采用折半查找法进行查找。 7、( )只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。
找成功的平均查找长度。
10、对于一个具有 n 个结点的单链表,在给定指针 p 所指结点之后和给定值为 x 的结点之后插入 一个新结点的时间复杂度分别是多少?
4/7
数据结构复习题
NCUT-- 2013-01-06
O(1) O(n) 四、编算法题 1、试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,…an)逆置
17、在一个链表中,已知 p 指针指向链表中一个非空结点,现要删除链表中 p 指针所指结点,
其时间复杂度为 O(1)的结构为________。
A)无头单循环链表 C)带头单循环链表
B)双循环链表 D)带头单链表
18、已知二叉树的先序序列为 :ABD GC EFH,中序 序列为:D GBA EC HF, 则其后序序列
链表结点结构为:
data next
Status MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc){ //将带头结点的单链表 La 和 Lb 合并为 Lc,并使 La、Lb、Lc 均指向新链表 p=La; while(p->next)
p= p->ne xt;
F goto 题 1 20、( )快速排序是目前所有排序方法中效率最高的稳定排序。
F P276 就平均时间而言,快速排序是目前被认为是最好的一种内部排序方法。 P284 与快速排序和堆排序相比,归并排序的最大特点是,他是一种稳定的排序方法。
二、选择填空 1、下列排序方法中,排序所花时间不受数据初始排列特性影响的算法是____。
其进行排序,写出排序的每步过程。
25 50 15 35 80 85 20 40 36 70
25 50 15 35 80 20 85 40 36 70
15 25 50 35 80 20 40 85 36 70
15 25 35 50 80 20 36 40 70 85
15 20 25 35 36 40 50 70 80 85 8、已知一棵二叉树的中序序列为 DBHEAFICG,先序序列为 ABDEHCFIG,写出该树的后
} 4、已知带头有序单链表 L,设计一个算法,将给定数据 x 插入到链表中,插入后保持链表
的有序性。 链表结点结构为:
data next
其中数据域为整数类型。 Status ListInsert_L(LinkList &L,int x){
5/7
数据结构复习题
NCUT-- 2013-01-06
//在带头结点的递增有序单链表 L 中插入元素 x,保持 L 递增有序并返回 OK p=L; while(p->next){
10、如果二叉树 T 是由多叉树 F 转换而成,那么树 F 的后根序列应该是二叉树 T 的_________。
A) 层次遍历序列
B)先序序列
C)中序序列
D)后序序列
11、下列排序方法中,不稳定的排序方法是____。
A) 冒泡排序 C) 归并排序
B) 简单选择排序 D) 直接插入排序
goto 二、1 12、在具有 n 个结点的二叉树中,其空指针域的个数为____。
为:_________。
A)BDGCEFHA
B)GDBECFHA
C)BDGAECHF
D) GDBEHFCA
19、如果二叉树 T 是由多叉树 F 转换而成,那么树 F 的叶子在二叉树 T 中应是满足_________
条件结点。
A) 左子树为空且右子树非空
B)左、右子树均为空
C)左子树为空
D)右子树为空
20、对二叉排序树进行_________遍历,可以得到该二叉树所有结点构成的有序序列。
A) 层次 B)先序
C)中序
D)后序
3/7
数据结构复习题
NCUT-- 2013-01-06
三、简答下列各题
1、设循环队列存储在一段连续存储空间中,其空间大小为 QSIZE,若队列中只设 rear 和 quelen
T P137 任何一棵和树对应的二叉树,其右子树必空。
11、(
F 12、(
)二叉树的存储结构必须采用二叉链表结构。 P126 顺序存储结构,链式存储结构。
)给定一组关键字序列,按顺序构造二叉排序树,其树的形态与关键字的排列顺 序无关。
F P229 有关。{1,2,3}和{3,2,1}可构成不同的二叉排序树。
if(p->next->data<x)
p= p->ne xt;
else break;
பைடு நூலகம்
}
s=(Link List)malloc(size of(LNo de ));
s->data=x;
s->next=p->next;
p->next=s;
return OK;
}//ListInsert_L
5、二叉树结点结构为
为(an,an-1,….a1) Status Reverse_Sq(SqList &L){
//将顺序表 L 就地逆置 for(i=1;i<=L.length/2;i++)
L.e le m[i]←→ L.e le m[L.length+1-i]; return OK; }//Reverse 2、已知带头结点的单链表 La 和 Lb,设计一个算法将 La、Lb 合并成链表 Lc(即将 Lb 联 接到 La 尾结点之后),并使 La、Lb、Lc 均指向新链表。
8、设一个输入序列为 1,2,3,4,5,6,则借助一个栈所得到的输出序列不可能是_________。
A)3,2,5,6,4,1
B) 4,5,3,6,2,1
C)2,4,3,5,1,6
D) 1,5,4,6,2,3
2/7
数据结构复习题
NCUT-- 2013-01-06
9、设循环队列存储空间的下标范围是 0..n-1,当队列头尾指针分别为 f 和 r 时,队列长度为 _________。 A)r - f B)r – f +1 C)(r – f + 1 ) % n D)(r – f + n ) % n
A)2n+1
B)n-1
C) n+1
D) 不确定
14、若深度为 6 的完全二叉树的第 6 层有 3 个叶结点,则该二叉树一共有_________个结点。
A)33
B) 34
C)35
D)不确定
15、设循环队列存储空间的下标范围是 0..n-1,当队列尾指针 rear,队列长度为 len 时,循
环队列中队头元素所在位置为_________。
A)rear - len
B)rear – len +1
C)(rear – len + 1 ) % n
D)(rear – len + n ) % n
16、在非空二叉树的中序遍历序列中,根结点的左边应该_________
A)只有左子树上的所有结点 B)只有左子树上的部分结点 C)只有右子树上的所有结点 D)只有右子树上的部分结点
续序列。
DHEBIFGCA 9、已知如下所示长度为 10 的表
(29,12,38,32,42,8,40,52,47,50) (1) 按表中元素的顺序构造一棵二叉排序树,画出该二叉排序树,并求其在等概率情
况下查找成功的平均查找长度。 (2) 若对表中元素先进行排序构成有序表,求在等概率情况下对此有序表进行折半查找时查
F 冒泡排序比较次数多少与原始数据顺序有关,但是不能确定什么情况下比较次数最多。
8、( )在具有 n 个结点的完全二叉树中,无法确定其叶子结点的个数。
F
(n+1)/2; n 为奇数(即 n1=0)
n0= n/2. n 为偶数(即 n1=1)
9、( )一棵树转换成二叉树后,该二叉树的根结点一定没有右子树。
来分别指示队尾元素的位置和队列中的元素个数,给出队列的满和空条件以及队头元素的位置。
队列满:quelen+1=QSIZE
队列空:quelen=0
队头元素位置: (re ar-que len+QSI ZE)% QSI ZE
3、将下列森林转化为二叉树 H
A
C
G
BD
E
F
I
J
K
4、设 p 指针指向双向循环链表的某个结点(p≠NULL),写出删除 p 指针所指结点的只要操 作步骤(用类 C 语句描述)。
数据结构复习题
NCUT-- 2013-01-06
一、判断题
1、( )采用循环链表作为存储结构的队列就是循环队列。
F P63 将顺序队列臆造为一个环状的空间,称之为循环队列 2、( )哈夫曼树一定是完全二叉树。
F P124 完全二叉树:深度为 k 的,有 n 个结点的二叉树,当且仅当其每一个结点
都与深度为 k 的满二叉树中编号从 1 至 n 的结点一一对应时,称之为完全二叉树。
A)4
B)5
C)6
D) 7
5 、 若 对 给 定的 关 键 字 序列 利 用 折 半查 找 方 法进 行 查 找 ,则 关 键 字 序列 需 满 足的 条 件 是 _________。 A)顺序存储且有序 B)顺序存储且升序 C)链式存储且有序 D)有序
6、在一个单链表中,已知 q 指针所指结点为 p 指针所指结点的前驱,若在 p、q 之间插入 s 所指结点,则主要操作为_________。 A)s->next = p->next ; p->next = s ; B)q->next = s ; s->next = p ; C)p->next = s->next ; s->next = p ; D)p->next = s ; s->next = q ;
A)冒泡排序 B)简单选择排序 C)快速排序 D) 直接插入排序
2、在一棵度为 3 的树中,度为 3 的结点数为 2 个,度为 2 的结点数为 1 个,度为 1 的结点数为 2
个,那么度为 0 的结点数为____个。
A)4
B)5
C)6
D) 7
3、对于给定的 8 个元素:34,76,45,18,26,54,92,65,按给定顺序生成一棵二叉排序树, 该树的深度为____。
p->next=Lb->next;
free(Lb); Lc=Lb=La; return OK; } 3、二叉排序树结点结构为
lchild
data rchild
其中 data 为整数类型,设计一个算法,打印出树中所有据域值为偶数的结点数据, 并要求打印出的数据由小到大有序。
Status InOrderTraverseBST(BiTree T){ if(T){ InOrderTraverse(T->lchild); if(T->data% 2==0) printf(T->data); InOrderTraverse(T->rchild); }
lchild
data
rchild
设计一个算法,统计出树中度为 1 的结点个数。
Status PreOrderTraverse (BiTree T , int &n){ if(T) {
相关文档
最新文档