数据结构本期末综合测试Word格式文档下载.docx
《数据结构本期末综合测试Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构本期末综合测试Word格式文档下载.docx(39页珍藏版)》请在冰豆网上搜索。
A.16B.14C.15D.13
7.链表所具备的特点之一是()。
A.可以随机访问任一结点B.需要占用连续的存储空间
C.插入元素的操作不需要移动元素D.删除元素的操作需要移动元素
8.设一棵有8个叶结点的二叉树,度数为1的结点有3个,则该树共有()
个结点。
A.20B.18C.17D.16
9.图状结构中数据元素的位置之间存在()的关系。
A.一对一B.多对多
C.一对多D.每一个元素都有一个直接前驱和一个直接后继
10.一棵具有5层的完全二叉树,最后一层有4个结点,则该树总共有()个结点。
A.14B.15C.19D.18
11.元素15,9,11,13按顺序依次进栈,则该栈的不可能输出序列是()
(进栈出栈可以交替进行)。
A.13,11,9,15B.15,9,11,13
C.13,11,15,9D.9,15,13,11
12.设主串为“FABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是()。
A.EFaBcB.ABCdE
C.DABCCD.FAbcC
13.设有一个14阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a4,3在一维数组B中的下标是()。
A.9B.10C.11D.8
14.元素111,113,115,117按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。
A.117,115,113,111B.111,113,115,117
C.113,111,117,115D.117,115,111,113
15.在一棵二叉树中,若编号为8的结点存在右孩子,则右孩子的顺序编号为()。
A.18B.16C.15D.17
16.以下说法不正确的是()。
A.栈和队列都是线性结构B.栈的特点是后进先出
C.栈和队列的特点都是先进后出D.队列的特点是先进先出
17.设一棵哈夫曼树共有14个非叶结点,则该树总共有()个结点。
A.29B.27C.30D.28
18.设有一个15阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三
角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a4,2
在一维数组B中的下标是()。
A.9B.8C.7D.10
19.如图1所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得
到的一种顶点序列为()。
A.abecdfB.acfebdC.aebcfdD.aedbfc
20.如图2所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能
得到的一种顶点序列为()。
A.acedbfB.acebfdC.aebcfdD.aedfcb
二、填空题
1.队列的特点之一是:
元素进、出队的次序是:
先进_______。
2.序列13,11,14,12,17,15,采用冒泡排序算法,经一趟冒泡后,序列的结果是________。
3.________结构中,数据元素间存在一对多的关系。
4.对16个元素的序列用冒泡排法进行排序,通常需要进行________趟冒泡。
5.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的
三项信息是_______。
6.对9个元素的一组记录(58,35,93,20,12,78,56,41,79)进行直接插入排
序(由小到大排序),当把第7个记录56插入有序表,为寻找插入位置需比较
________次。
7.在对11个记录的序列(12,35,9,7,2,11,56,95,37,58,60)进行直接插入排序时,当把
第6个记录11插入到有序表时,为寻找插入位置,元素间需比较_________次。
(由小到大排列)
8.结构中的数据元素存在一对多的关系称为________结构。
9.哈希函数是记录关键字的值与该记录______之间所构造的对应关系。
10.设有一棵深度为5的完全二叉树,第5层上有3个结点,该树共有_______个结点。
(根所在结点为第1层)
11.20个元素进行冒泡法排序,通常需要进行19趟冒泡,其中第10趟冒泡共需要进行
________次元素间的比较。
12.一棵二叉树中每一个非叶结点的度数都为2,共有10个非叶结点,则该树共有
_______个结点。
13.一棵有19个结点的二叉树,采用链式结构存储,该树结构中有_____个指针
域为空。
14.序列3,1,7,18,6,9,13,12经一趟归并排序的结果为______。
15.中序遍历一棵________树可得到一个有序序列。
16.一棵有16个叶结点的哈夫曼树,则该树共有_______个非叶结点。
17.二叉排序树插入操作中,新插入的结点总是以树的________结点被插入的
18.________遍历二叉排序树可得到一个有序序列。
19.广义表的(a,(d,a,b),h,(e,((i,j),k)))深度是________。
20.广义表(f,h,(a,b,d,c),d,e,((i,j),k))的长度是________。
21.序列4,2,5,3,8,6,7,9,采用归并排序算法(升序),经一趟归并后,序列的结果
________。
22.广义表的(h,c,g,a,(a,b),d,e,((i,j),k))深度是_______。
23.字符串a1=〝teijing〞,a2=〝tef〞,a3=〝teifang〞,a4=“tefi〞最小的
是________。
24.设有串p1=”ABADF”,P2=”ABAFD”,P3=”ABADFA”P4=”ABAF”,四个串中最
小的是________。
三、综合题
1.设查找表为
序号
1
2
3
4
5
6
7
8
9
10
11
序列
12
18
19
37
55
65
77
85
86
117
(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用下标表示)
(2)说明成功查找到元素86需要经过多少次比较?
(3)求在等概率条件下,成功查找的平均比较次数?
2.
(1)设有数据集合{50,39,17,83,111,14,65,13,91,102,49},依次取
集合中各数据构造一棵二叉排序树。
(2)一组记录的关键字序列为(6,9,7,4,5,8),利用堆排序(堆顶元素
是最小元素)的方法建立初始堆。
(要求用完全二叉树表示)
3.
(1)一组记录的关键字序列为(26,59,36,18,20,25),给出利用堆排序(堆顶
元素是最小元素)的方法建立的初始堆(要求以完全二叉树描述)。
(2)对关键字序列(26,59,36,18,20,64)采用快速排序,给出以第一个关键字为分割
元素,经过一次划分后的结果。
4.
(1)如下表为一个长度为10的有序表,给出按折半查找对该表进行查找的判定树
(2)按折半查找对该表进行查找,求在等概率情况下查找成功的平均比较次数。
为了成功查找72,给出元素的比较次数。
23
49
39
25
60
72
84
59
5.
(1)以1,2,3,6,7,8作为叶结点的权,构造一棵哈夫曼树
(2)给出具有相应权重值的叶结点的哈夫曼编码。
四、程序填空题
1.以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格
typedefstruct
{intkey;
……
}NODE;
intBinary_Search(NODEa[],intn,intk)
{
intlow,mid,high;
low=0;
high=n-1;
while(__
(1)______)
mid=(__
(2)______)
if(a[mid].key==k)
return__(3)______;
elseif(__(4)______)
low=mid+1;
else__(5)______;
}
return-1
1.
(1)low<
=high
(2)(low+high)/2
(3)mid;
(4)a[mid].key<
k
(5)high=mid-1;
2.设线性表以不带头结点的单向链表存储,链表头指针为head,以下程序的功能是
输出链表中各结点中的数据域data。
完成程序中空格部分。
#defineNULL0
voidmain()
{NODE*head,*p;
p=head;
/*p为工作指针*/
do
{printf(“%d\n”,___
(1)_____);
___
(2)_____;
}while(___(3)_____);
2.
(1)p->
data
(2)p=p->
next(3)p!
=NULL
3.以下程序是前序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、
右指针域分别为left和right,数据域data为字符型,BT指向根结点)。
voidInorder(structBTreeNode*BT)
if(BT!
=NULL){
__
(1)______;
__
(2)______;
Inorder(BT-->
right);
}
利用上述程序对右图进行前序遍历,结果是__(3)______;
(1)printf(“%c”,BT->
data)
(2)Inorder(BT->
left)
(3)abdfec
4.以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、
完成程序中
空格部分。
if(BT!
Inorder(BT->
left);
___
(1)_____
___
(2)_____
}
4.
(1)Inorder(BT->
right)
(2)printf(“%c”,BT->
5.顺序查找算法如下,完成程序中空格部分。
intsearch(NODEa[],intn,intk)
/*在a[0],a[1]…a[n-1],中查找关键字等于k的记录,查找成功返回记录的下标,失
败时返回-1*/
{inti=0;
while(i<
n&
&
a[i].key___
(1)_____)
if(___(3)____)
returni;
elsereturn-1;
5.
(1)!
=k
(2)i++;
(3)a[i].key==k
综合练习一答案
一、单项选择题
1.C2.A3.B4.D5.A6.C7.C8.B9.B10.C11.C12.A13.A14.D15.D16.C17.A18.B19.D20.B
1.先出2.11,13,12,14,15,173.树型4.155.行下标列下标数组元素
6.4次7.38.树形9.存储位置10.1811.10
12.21
13.20
14.1,3,7,18,6,9,12,13
15.二叉排序树16.15
17.叶18.中序
19.4
20.6
21.2,4,3,5,6,8,7,9
22.3
23.a2
24.P1
1.
(1)55
1885
4196586
123777117
(2)3次
(3)平均查找长度=(1+2*2+3*4+4*4)/11=3
2.
(1)
(2)4,5,7,9,6,8
3.
(1)18,20,25,59,26,36
(2)20,18,26,36,59,64
4.
(1)
(2)(1+2*2+3*4+4*3)/10=29/104次
5.
(1)
(2)
10000
20001
3001
601
710
811
综合练习二
一、单项选择题
1.设头指针为head的非空的单向循环链表,指针p指向尾结点,则满足表达式()
为真。
next==NULLB.p==NULLC.p->
next==headD.p==head
2.数据的存储结构包括数据元素的表示和()。
A.数据处理的方法C.相关算法
D.数据元素的类型D.数据元素间的关系的表示
3.一种逻辑结构()。
A.可以有不同的存储结构B.只能有唯一的存储结构
C.是指某一种数据元素之间的存储关系D.是指某一种数据元素的性质
4.在一个头指针为head的单向链表中,p指向尾结点,要使该链表成为单向循环链表
可执行()。
A.p=head->
B.head->
next=p;
C.head->
D.p->
next=head;
5.链表所具备的特点之一是()。
A.可以随机访问任一结点B.占用连续的存储空间
C.插入删除元素的操作不需要移动元素结点D.可以通过下标对链表进行直接访问
6.元素111,113,115,117按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。
C.117,115,111,113D.113,111,117,115
7.线性结构中数据元素的位置之间存在()的关系。
A.一对一B.一对多
C.多对多D.每一个元素都有一个直接前驱和一个直接后继
8.以下说确的是()。
A.栈的特点是先进后出
B.栈的特点是先进先出
C.队列的特点是先进后出
D.栈和队列的特点都是先进后出
9.在一个单向链表中p所指结点之后插入一个s所指的结点时,可执行()。
next=s;
s->
next=p->
nextB.p->
nextD.s->
p->
10.设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三
角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a6,2
A.24B.17C.16D.23
11.元素11,13,15,17按顺序依次进栈,则该栈的不可能输出序列是()
A.17,15,13,11B.11,13,15,17
C.17,15,11,13D.13,11,17,15
12.设一棵有2n+1个结点的二叉树,除叶结点外每个结点度数都为2,则该树共有()
个叶结点。
A.nB.n+1C.n+2D.n-1
13.设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a5,2在一维数组B中的下标是()。
A.11B.12C.13D.10
14.已知如图1所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能
A.abecdfB.aecbdfC.aebcfdD.aedfcb
图1
15.设一棵哈夫曼树共有11个非叶结点,则该树有()个叶结点。
A.22B.10C.11D.12
16.线性表以()方式存储,能进行折半查找。
A.关键字有序的顺序B.顺序C.D.二叉树
17.一棵具有38个结点的完全二叉树,最后一层有()个结点。
A.7B.5C.6D.8
18.一棵具有38个结点的完全二叉树,最后一层有()个结点。
19.已知如图2所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。
A.abecdfB.acfebdC.aebcfdD.aedfcb
20.对一个栈顶指针为top的链栈进行出栈操作,用变量e保存栈顶元素的值,则执行
()。
A.e=top->
top->
data=e;
B.top=top->
e=top->
data;
C.e=top->
top=top->
D.top=top->
e=data;
1.字符串a1=〝BEIJING〞,a2=〝BEF〞,a3=〝BEFANG〞,a4=“BEI〞最小的
是______。
2.数组a经初始化chara[]=“English”;
a[7]中存放的是_字符串的结束符。
3.把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为__物理结构(存储结构)。
4.设有串p1=”ABADF”,P2=”ABAFD”,P3=”ABADFA”P4=”ABAF”,四个串中最大的是________。
5.设有一个长度为22的顺序表,要删除第8个元素需移动元素的个数为______。
6.在一棵二叉树中,若编号为i的结点存在右孩子,则右孩子的顺序编号为________。
7.在一棵二叉树中,若编号为i的结点存在左孩子,则左孩子的顺序编号为______。
8.设有一个长度为20的顺序表,要插入一个元素,并作为第8个元素,需移动元素的个
数为________。
9.设一棵有n个叶结点的二叉树,除叶结点外每个结点度数都为2,则该树共有
______个结点。
10.结构中的数据元素存在多对多的关系称为________结构。
11.在对一组序列(45,29,87,12,6,63,55,37,78)进行直接插入排序时,当把第8个记录37插
入到有序表时,为寻找插入位置需比较_________次。
(由小到大排序)
12.设有一棵深度为4的完全二叉树,第四层上有5个结点,该树共有_______个结点。
(根所在结点为第1层)
13.n个元素进行冒泡法排序,通常需要进行________趟冒泡。
14.一棵二叉树中有n个非叶结点,每一个非叶结点的度数都为2,则该树共有_______
15.一棵有21个结点的哈夫曼树,该树中有_____个叶结点。
16.在对一组记录(55,39,97,22,16,73,65,47,88)进行直接插入排序时,当把第7个记录65插
(由小到大排序
17.________遍历二叉排序树可得到一个有序序列。
18.n个元素进行冒泡法排序,第j趟冒泡要进行______次元素间的比较。
19.广义表(a,(a,b),d,e,((i,j),k))的长度是________。
20.一棵有n个叶结点的哈夫曼树,则该树共有_______个结点。
21.广义表的(a,(a,b),d,e,((i,j),k))深度是________。
22.中序遍历________可得到一个有序序列。
23.序列14,12,15,13,18,16,采用冒泡排序算法(升序),经一趟冒泡后,序列的结果
是________。
24.广义表((a,b),d,e,((i,j),k))的长度是________。
三、综合题
1.设查找表为(7,15,21,22,40,58,68,80,88,89,120),元素的下标依次为1,2,3,……,11.
(2)说明成功查找到元素40需要经过多少次比较?
2.
(1)设有数据集合{40,29,7,73,101,4,55,2,81,92,39},依次取集合
中各数据构造一棵二叉排序树。
(2)一组记录的关键字序列为(5,8,6,3,4,7),利用堆排序(堆顶元素是最
小元素)的方法建立初始堆。
3.
(1)一组记录的关键字序列为(47,80,57,39,41,46),给出利用堆排序(堆顶
(2)对关键字序列(47,80