电大数据结构本期末复习指导.docx
- 文档编号:8604503
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:22
- 大小:27.09KB
电大数据结构本期末复习指导.docx
《电大数据结构本期末复习指导.docx》由会员分享,可在线阅读,更多相关《电大数据结构本期末复习指导.docx(22页珍藏版)》请在冰豆网上搜索。
电大数据结构本期末复习指导
一、单项选择题(每小题2分,共30分)
1.数据结构中,与所使用的计算机无关的是数据的()结构。
A.逻辑B.物理C.存储D.逻辑与物理
2.下述各类表中可以随机访问的是()。
A.单向链表B.双向链表C.单向循环链表D.顺序表
3.在一个长度为n的顺序表中为了删除第5个元素,从前到后依次移动了15个元素。
则原顺序表的长度为()。
A.21B.20C.19D.25
4.元素2,4,6按顺序依次进栈,则该栈的不可能的输出序列是()。
A.642B.624C.426D.264
5.一个队列的入队序列是5,6,7,8,则队列的输出序列是()。
A.5678B.8765
C.7865D.可能有多种情况
6.串函数StrCmp(“d”,“D”)的值为()。
A.0B.1C.-1D.3
7.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句()。
A.p=q->nextB.p->next=qC.p->next=q->nextD.q->next=NULL
8.设一棵哈夫曼树共有n个非叶结点,则该树一共有()个结点。
A.2*n-1B.2*n+1C.2*nD.2*(n-1)
9.对如图1所示二叉树进行中序遍历,结果是()。
A.dfebagcB.defbagcC.defbacgD.dbaefcg
a
10.任何一个无向连通图的最小生成树()。
A.至少有一棵B.只有一棵C.一定有多棵D.可能不存在
11.设有一个10阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素A8,5在一维数组B中的下标是()。
A.33B.32C.85D.41
12.一组记录的关键字序列为(37,70,47,29,31,85),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为()。
A.31,29,37,85,47,70B.29,31,37,47,70,85
C.31,29,37,70,47,85D.31,29,37,47,70,85
13.对n个元素进行冒泡排序,要求按升序排列,程序中设定某一趟冒泡没有出现元素交换,就结束排序过程。
对某n个元素的排序共进行了3n-6次元素间的比较就完成了排序,则()。
A.原序列是升序排列
B.原序列是降序排列
C.对序列只进行了2趟冒泡
D.对序列只进行了3趟冒泡
14.在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删除的结点,应执行()。
A.x=top->data;top=top->next;B.top=top->next;x=top;
C.x=top;top=top->next;D.x=top->data;
15.串函数StrCat(a,b)的功能是进行串()。
A.比较B.复制C.赋值D.连接
二、填空题(每小题2分,共24分)
1.在一个单向链表中p所指结点之后插入一个s所指的新结点,应执行s->next=p->next;和______操作。
2.根据数据元素间关系的不同特性,通常可分为________、、、四类基本结构。
3.在一个链队中,设f和r分别为队头和队尾指针,则删除一个结点的操作为________。
(结点的指针域为next)
4.________遍历二叉排序树可得到一个有序序列。
5.一棵有2n-1个结点的二叉树,其每一个非叶结点的度数都为2,则该树共有_______个叶结点。
6.如图1所示的二叉树,其中序遍历序列为_________。
d
图1
7.对稀疏矩阵进行压缩存储,矩阵中每个非零元素所对应的三元组包括该元素的________、________和________三项信息。
8.有一个有序表{2,3,9,13,33,42,45,63,74,77,82,95,110},用折半查找法查找值为82的结点,经________次比较后查找成功。
9.图的深度优先搜索和广度优先搜索序列不是唯一的。
此断言是______的。
(回答正确或不正确)
10.哈希法既是一种存储方法,又是一种。
11.44.在对一组记录(55,39,97,22,16,73,65,47,88)进行直接插入排序时,当把第7个记录65插入到有序表时,为寻找插入位置需比较_________次。
12.栈和队列的操作特点分别是________和________。
三、综合题(每小题10分,共30分)
1.已知序列{11,19,5,4,7,13,2,10},
(1)试给出用归并排序法对该序列作升序排序时的每一趟的结果。
(2)对上述序列用堆排序的方法建立初始堆(要求小根堆,以二叉树描述建堆过程)。
2.设有序表为(13,19,25,36,48,51,63,84,91,116,135,200),元素的下标依次为1,2,……,12.
(1)说出有哪几个元素需要经过3次元素间的比较才能成功查到
(2)画出对上述有序表进行折半查找所对应的判定树(树结点用下标表示)
(3)设查找元素5,需要进行多少次元素间的比较才能确定不能查到.
3.
(1)设有查找表{5,14,2,6,18,7,4,16,3},依次取表中数据,构造一棵二叉排序树.
(2)说明如何通过序列的二叉排序树得到相应序列的排序结果,对上述二叉排序给出中序遍历的结果.
四、程序填空题(每空2分,共16分)
1.以下冒泡法程序对存放在a[1],a[2],……,a[n]中的序列进行冒泡排序,完成程序中的空格部分,其中n是元素个数,程序按升序排列。
Voidbsort(NODEa[],int)
{NODEtemp;
inti,j,flag;
for(j=1;
(1);j++);
{flag=0;
for(i=1;
(2);i++)
if(a[i].key>a[i+1].key)
{flag=1;
temp=a[i];
(3);
(4);
}
if(flag==0)break;
}
}
程序中flag的功能是(5)
7.以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域为data,其数据类型为字符型,BT指向根结点)。
VoidPostorder(structBTreeNode*BT)
{if(BT!
=NULL){
(1);
(2);
(3);
}
}
试题答案;
一、单项选择题(每小题2分,共30分)
1.A2.D3.B4.B5.A6.C7.C8.B9.A10.A
11.A12.D13.D14.A15.D
二、填空题(每小题2分,共24分)
1.p->next=s;
2.集合、线性、树形、图状
3.f=f->next;
4.中序
5.n
6.dgbaechhif
7.行号、列号、元素值
8.4次
9.正确
10.查找方法
11.3次
12.先进后出先进先出
三、综合题(每小题10分,共30分)
1.
(1)初始11,19,5,4,7,13,2,10
第一趟[11,19][4,5][7,13][2,10]
第二趟[4,5,11,19][2,7,10,,13]
第三趟[2,4,5,7,10,11,13,19]
4
(2)
13
11
2.
(1)13,36,63,135
9
(2)
(3)3次
5
3.
(1)
14
2
18
6
4
7
16
3
(2)中序遍历
中序2,3,4,5,6,7,14,16,18
四、程序填空题(每空2分,共16分)
1.
(1)j<=n-1
(2)i<=n-j
(3)a[i]=a[i+1]
(4)a[i+1]=temp
(5)当某趟冒泡中没有出现交换则已排好序,结束循环
2.
(1)Postorder(BTleft)
(2)Postorder(BTright)
(3)printf(“%c”,BTdata)
第二部分期末综合练习题
一、单项选择题(每小题2分)
1.针对线性表,在存储后如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最节省时间。
A.单链表B.双链表C.顺序表D.单循环链表
2.带头结点的单向链表为空的判断条件是()(设头指针为head)。
A.head==NULLB.head!
=NULL
C.head->next==headD.head->next==NULL
3.链表所具备的特点是()。
A.可以随机访问任一结点B.占用连续的存储空间
C.插入删除元素的操作不需要移动元素结点D.可以通过下标对链表进行直接访问
4.非空的单向循环链表的尾结点满足()(设头指针为head,指针p指向尾结点)。
A.p->next==NULLB.p==NULLC.p==headD.p->next==head
5.数据结构中,与所使用的计算机无关的是数据的()结构。
A.物理B.逻辑C.存储D.逻辑与物理
6.算法的时间复杂度与()有关。
A.所使用的计算机B.计算机的操作系统
C.算法本身D.数据结构
7.设有一个长度为n的顺序表,要在第i个元素之前插入一个元素(也就是插入元素作为新表的第i个元素),则移动元素个数为()。
A.n-i+1B.n-iC.n-i-1D.i
8.设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为()。
A.n-i+1B.n-iC.n-i-1D.i
9.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用的语句是()。
A.p=q->nextB.p->next=qC.q->next=NULLD.p->next=q->next
10.在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。
A.p=snextB.pnext=snext;
C.snext=pnext;pnext=s;D.pnext=s;snext=pnext
11.从一个栈顶指针为top的链栈中删除一个结点时,用变量x保存被删结点的植,则执行()。
A.x=top->data;top=topnext;B.x=top->data;
C.top=top->next;x=top->data;D.top=top->next;x=data;
12.在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为()。
A.r=fnext;B.r=rnext;C.f=fnext;D.f=rnext;
13.在一个链队中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为()。
A.f->next=s;f=s;B.s->next=r;r=s;C.r->next=s;r=s;D.s->next=f;f=s;
14.元素1,3,5,7按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。
A.7,5,3,1B.7,5,1,3
C.3,1,7,5D.1,3,5,7
15.设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a10,8在一维数组B中的下标是()。
A.18B.45C.53D.58
16.在C语言中,顺序存储长度为3的字符串,需要占用()个字节。
A.4B.3C.6D.12
17.一棵有n个结点采用链式存储的二叉树中,共有()个指针域为空。
A.nB.n+1C.n-1D.n-2
18.在一棵二叉树中,若编号为i的结点存在左孩子,则左孩子的顺序编号为()。
A.2iB.2i-1C.2i+1D.2i+2
19.设一棵哈夫曼树共有n个叶结点,则该树有()个非叶结点。
A.nB.2nC.n-1D.n+1
20.一棵具有35个结点的完全二叉树,最后一层有()个结点。
A.4B.6C.16D.8
21.一棵完全二叉树共有5层,且第5层上有六个结点,该树共有()个结点。
A.30B.20C.21D.23
22.在一个无向图中,所有顶点的度数之和等于边数的()倍。
A.3B.2C.2.5D.1.5
23.已知如图1所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。
A.abecdfB.acfebdC.aedfcbD.aebcfd
a
图1
24.已知如图3所示的一个图,若从顶点V1出发,按广度优先法进行遍历,则可能得到的一种顶点序列为()。
A.V1V2V4V8V5V3V6V7B.V1V2V4V5V8V3V6V7
C.V1V2V4V8V3V5V6V7D.V1V3V6V7V2V4V5V8
V5
图3
25.在有序表{1,3,8,13,33,42,46,63,76,78,86,97,100}中,用折半查找值86时,经()次比较后查找成功。
A.3B.4C.6D.8
26.对二叉排序树进行()遍历,可以使遍历所得到的序列是有序序列。
A.按层次B.后序C.中序D.前序
27.有一个长度为12的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为()。
A.37/12B.39/12C.41/12D.35/12
28.设已有m个元素有序,在未排好序的序列中挑选第m+1个元素,并且只经过一次元素的交换就使第m+1个元素排序到位,该方法是()。
A.折半排序B.冒泡排序C.归并排序D.简单选择排序
29.一组记录的关键字序列为(46,79,56,38,40,84),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为()。
A.40,38,46,79,56,84B.40,38,46,84,56,79
C.40,38,46,56,79,84D.38,40,46,56,79,84
30.一组记录的关键字序列为(47,80,57,39,41,46),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为()。
A.39,47,46,80,41,57B.39,41,46,80,47,57
C.41,39,46,47,57,80D.39,80,46,47,41,57
二.填空题
1.把数据存储到计算机中,并具体体现数据之间的逻辑结构称为________结构。
2.算法的5个特征为_________。
3.结构中的数据元素存在的关系称为树形结构。
4.要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。
则比较的次数和算法的时间复杂度分别为________和________。
5.求两个n阶矩阵的乘积,算法的基本操作和时间复杂度分别为________和________。
6.在一个单向链表中p所指结点之后插入一个s所指向的结点时,应执行s->next=p->next;和的操作。
7.设有一个头指针为head的单向循环链表,p指向链表中的结点,若p->next==head,则p所指结点为。
8.在一个单向链表中,要删除p所指结点,已知q指向p所指结点的前驱结点。
则可以用操作________。
9.设有一个头指针为head的单向链表,p指向表中某一个结点,且有p->next==NULL,通过操作________,就可使该单向链表构造成单向循环链表。
10.向一个栈顶指针为h的链栈中插入一个s所指结点时,可执行s->next=h;和操作。
(结点的指针域为next)
11.从一个栈顶指针为h的链栈中删除一个结点时,用x保存被删结点的值,可执行
和h=h->next;(结点的指针域为next)。
12.在一个链队中,设f和r分别为队头和队尾指针,则插入s所指结点的操作为r->next=s;和(结点的指针域为next)。
13.在一个链队中,设f和r分别为队头和队尾指针,则删除一个结点的操作为________。
(结点的指针域为next)
14.两个串相等的充分必要条件是__________。
15.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的_______、_______和_______三项信息。
16.在二叉树的链式存储结构中,通常每个结点中设置三个域,它们是_______、、
。
17.一棵有2n-1个结点的二叉树,其每一个非叶结点的度数都为2,则该树共有_______个叶结点。
18.一棵二叉树中有2n-2条边(结点间的连线),其中每一个非叶结点的度数都为2,则该树共有_______个非叶结点。
19.中序遍历二叉排序树可得到一个。
20.如图1所示的二叉树,其中序遍历序列为_________。
c
d
图1
图2
21.如图1所示的二叉树,其先序遍历序列为_________。
22.如图1所示的二叉树,其后序遍历序列为_________。
23.如图2所示的二叉树,其前序遍历序列为_________。
24.哈希函数是记录关键字值与该记录存储地址之间所构造的对应关系。
25.图的深度优先搜索和广度优先搜索序列不一定是唯一的。
此断言是______的。
(回答正确或不正确)
26.n个元素进行冒泡法排序,通常需要进行________趟冒泡,第j趟冒泡要进行______次元素间的比较。
三、综合题
1.设一组记录的关键字序列为(49,83,59,41,43,47),采用堆排序算法完成以下操作:
(要求小根堆,并画出中间过程)
(1)以二叉树描述6个元素的初始堆
(2)以二叉树描述逐次取走堆顶元素后,经调整得到的5个元素、4个元素的堆
2.已知序列{11,19,5,4,7,13,2,10}
(1)试给出用归并排序法对该序列作升序排序时的每一趟的结果。
(2)对上述序列用堆排序的方法建立初始堆(要求小根堆,以二叉树描述建堆过程)。
3.一组记录的关键字序列为(46,79,56,38,40,84)
(1)利用快速排序的方法,给出以第一个记录为基准得到的一次划分结果(给出逐次交换元素的过程,要求以升序排列)
(2)对上述序列用堆排序的方法建立大根堆,要求以二叉树逐次描述建堆过程。
4.设查找表为(7,15,21,22,40,58,68,80,88,89,120),元素的下标依次为1,2,3,……,11.
(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用下标表示)
(2)说明成功查找到元素40需要经过多少次比较?
(3)求在等概率条件下,成功查找的平均比较次数?
5.设查找表为(16,15,20,53,64,7),
(1)用冒泡法对该表进行排序(要求升序排列),要求写出每一趟的排序过程,通常对n个元素进行冒泡排序要进行多少趟冒泡?
第j趟要进行多少次元素间的比较?
(2)在排序后的有序表的基础上,画出对其进行折半查找所对应的判定树.(要求以数据元素作为树结点)
(3)求在等概率条件下,对上述有序表成功查找的平均查找长度.
6.
(1)如果二叉树中任一结点的值均大于其左孩子的值、小于其右孩子的值,则该树为二叉排序树,这种说法是否正确?
若认为正确,则回答正确,若认为不正确,则举例说明。
(2)设有数据集合{40,29,7,73,101,4,55,2,81,92,39},依次取集合中各数据,构造一棵二叉排序树.
7.
(1)设有查找表{5,14,2,6,18,7,4,16,3},依次取表中数据,构造一棵二叉排序树.
(2)说明如何由序列的二叉排序树得到相应序列的排序结果,对上述二叉排序给出中序遍历的结果.
8.
(1)“一棵二叉树若它的根结点的值大于左子树所有结点的值,小于右子树所有结点的值,则该树一定是二叉排序树”。
该说法是否正确,若认为正确,则回答正确,若认为不正确则说明理由?
(2)设有查找表{7,16,4,8,20,9,6,18,5},依次取表中数据构造一棵二叉排序树.对上述二叉树给出后序遍历的结果.
9.
(1)以2,3,4,7,8,9作为叶结点的权,构造一棵哈夫曼树,给出相应权重值叶结点的哈夫曼编码。
(2)一棵哈夫曼树有n个叶结点,它一共有多少个结点?
简述理由?
10.
(1)对给定权值2,1,3,3,4,5,构造哈夫曼树。
(2)同样用上述权值构造另一棵哈夫曼树,使两棵哈夫曼树有不同的高度,并分别求两棵树的带权路径长度。
d
11.如图所示的二叉树
(1)给出中序遍历序列
(2)给出先序遍历序列
(3)给出后序遍历序列
四、程序填空题
1.以下冒泡法程序对存放在a[1],a[2],……,a[n]中的序列进行冒泡排序完成程序中的空格部分,其中n是元素个数,要求按升序排列。
voidbsort(NODEa[],intn)
{NODEtemp;
inti,j,flag;
for(j=1;;j++);
{flag=0;
for(i=1;;i++)
if(a[i].key>a[i+1].key)
{flag=1;
temp=a[i];
;
;
}
if(flag==0)break;
}
}
程序中flag的功能是
2.以下是用尾插法建立带头结点且有n个结点的单向链表的程序,结点中的数据域从前向后依次为1,2,3,……,n,完成程序中空格部分。
NODE*create(n)
{NODE*head,*p,*q;
inti;
p=(NODE*)malloc(sizeof(NODE));
head=;;pnext=NULL;/*建立头结点*/
for(i=1;i<=n;i++)
{p=;
p->data=i;
p->next=NULL;
q->next=;
;
}
return(head);
}
3.以下是用头插法建立带头结点且有n个结点的单向链表的程序,要求结点中的数据域从前向后依次为n,n-1,……,1,完成程序中空格部分。
NODE*create2(n)
{NODE*head,*p,*q;
inti;
p=(NODE*)malloc(sizeof(NODE));
p->next=NULL;
head=;
;
for(i=1;i<=n;i++)
{p=;
p->data=i;
if(i==1)
p->next=NUL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电大 数据结构 本期 复习 指导