云南专升本数据结构历年试题及答案.docx
《云南专升本数据结构历年试题及答案.docx》由会员分享,可在线阅读,更多相关《云南专升本数据结构历年试题及答案.docx(29页珍藏版)》请在冰豆网上搜索。
![云南专升本数据结构历年试题及答案.docx](https://file1.bdocx.com/fileroot1/2023-6/29/50f3e46b-2863-4df4-b7fe-758d5ad14a62/50f3e46b-2863-4df4-b7fe-758d5ad14a621.gif)
云南专升本数据结构历年试题及答案
一、单项选择题
1.算法指的是(D)D.解决问题的有限运算序列
2.线性表采用链式存储时,结点的存储地址(B)B.连续与否均可
3.将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为(C)
A.O
(1)B.O(n)C.O(m)D.O(m+n)
4.由两个栈共享一个向量空间的好处是:
(B)B.节省存储空间,降低上溢发生的机率
5.设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为(D)D.front=(front+1)%m
6.如下陈述中正确的是(A)A.串是一种特殊的线性表
7.若目标串的长度为n,模式串的长度为[n/3],则执行模式匹配算法时,在最坏情况下的时间复杂度是(C)C.O(n2)
8.一个非空广义表的表头(D)D.可以是子表或原子
9.假设以带行表的三元组表表示稀疏矩阵,则和下列行表
0
2
3
3
5
对应的稀疏矩阵是(A)
10.在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为(C)C.6
11.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为(D)D.n2-2e
12.假设一个有n个顶点和e条弧的有向图用邻接表表示,则删除与某个顶点vi相关的所有弧的时间复杂度是(C)C.O(n+e)
13.用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下:
20,15,21,25,47,27,68,35,84
15,20,21,25,35,27,47,68,84
15,20,21,25,27,35,47,68,84
则所采用的排序方法是(D)D.快速排序
14.适于对动态查找表进行高效率查找的组织结构是(C)C.三叉排序树
15.不定长文件是指(B)B.记录的长度不固定
二、填空题
16.数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储(存储结构)无关,是独立于计算机的。
17.在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head可用p表示为head=p->next->next。
18.栈顶的位置是随着进栈和退栈操作而变化的。
19.在串S=“structure”中,以t为首字符的子串有12个。
20.假设一个9阶的上三角矩阵A按列优先顺序压缩存储在一维数组B中,其中B[0]存储矩阵中第1个元素a1,1,则B[31]中存放的元素是a4,8。
21.已知一棵完全二叉树中共有768结点,则该树中共有384个叶子结点。
22.已知一个图的广度优先生成树如右图所示,则与此相
应的广度优先遍历序列为abefcdg。
23.在单链表上难以实现的排序方法有快速排序和堆排序。
24.在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数为2。
25.多重表文件和倒排文件都归属于多关键字文件。
三、解答题(本大题共4小题,每小题5分,共20分)
26.画出下列广义表的共享结构图形表示
P=(((z),(x,y)),((x,y),x),(z))
27.请画出与下列二叉树对应的森林。
28.已知一个无向图的顶点集为{a,b,c,d,e},其邻接矩阵如下所示
a
b
c
d
e
(1)画出该图的图形;
(2)根据邻接矩阵从顶点a出发进行深度优先遍历和广度优先遍历,写出相应的遍历序列。
深度优先遍历序列为:
abdce广度优先遍历序列为:
abedc
29.已知一个散列表如下图所示:
35
20
33
48
59
0123456789101112
其散列函数为h(key)=key%13,处理冲突的方法为双重散列法,探查序列为:
hi=(h(key)+
*h1(key))%m
=0,1,…,m-1其中h1(key)=key%11+1
回答下列问题:
(1)对表中关键字35,20,33和48进行查找时,所需进行的比较次数各为多少?
(2)该散列表在等概率查找时查找成功的平均查找长度为多少?
解:
(1)对关键字35、20、33和48进行查找的比较次数为3、2、1、1;
(2)平均查找长度
一、单项选择
1.下面程序段的时间复杂度是(D)
for(i=0;i<n;i++)
for(j=1;j<m;j++)
A[i][j]=0;D.O(m*n)
2.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是(B)B.p->next=p->next->next
3.在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next=head,则(D)D.*P的直接后继是尾结点
4.判定“带头结点的链队列为空”的条件是(C)C.Q.front==Q.rear
5.设有两个串T和P,求P在T中首次出现的位置的串运算称作(D)D.子串定位
6.广义表A=(a,(b),(),(c,d,e))的长度为(D)D.7
7.一棵含18个结点的二叉树的高度至少为(C)序列为ABDECF,中序序列为DBEAFC,则后序序列为(D)D.DEBFCA
9.无向图中一个顶点的度是指图中(B)B.与该顶点相邻接的顶点数
10.已知一个图如下所示,从顶点a出发进行广度优先遍历可能得到的序列为(C)
C.acbdef
11.在下列排序方法中,平均时间性能为O(nlogn)且空间性能最好的是(B)B.堆排序
12.已知一组关键字为{25,48,36,72,79,82,23,40,16,35},其中每相邻两个为有序子序列。
对这些子序列进行一趟两两归并的结果是(A)A.{25,36,48,72,23,40,79,82,16,35}
13.设顺序存储的线性表共有123个元素,按分块查找的要求等分成3块。
若对索引表采用顺序查找来确定块,并在确定的块中进行顺序查找,则在查找概率相等的情况下,分块查找成功时的平均查找长度为(B)B.23
14.索引非顺序文件的特点是(A)A.主文件无序,索引表有序
15.倒排文件的主要优点是(C)C.便于进行多关键字查询
二、填空题(本大题共10小题,每小题2分,若有两个空格,每个空格1分,共20分)
16.抽象数据类型的特点是将___数据_____和____运算____封装在一起,从而现实信息隐藏。
17.从顺序表中删除一个元素时,表中所有在被删元素之后的元素均需___前移___一个位置。
18.在队列中,允许进行插入操作的一端称为____队尾____,允许进行删除操作的一端称为___队头___。
19.如图两个栈共享一个向量空间,top1和top2分别为指向两个栈顶元素的指针,则“栈满”的判定条件是__top1=top2-1____。
20.设S1="good",S2="",S3="book",则S1,S2和S3依次联接后的结果是_goodbook__。
21.假设三维数组A[10][9][8]按行优先顺序存储,若每个元素占3个存储单元,且首地址为100,则元素A[9][8][7]的存储地址是__2257_____。
22.已知在一棵含有n个结点的树中,只有度为k的分支结点和度为0的叶子结点,则该树中含有的叶子结点的数目为__((n-1)/k)*(k-1)+1_或n-(n-1)/k__。
23.能够成功完全拓扑排序的图一定是一个__有向无环图__。
24.如果在排序前,关键字序列已接近正序或逆序,则在堆排序和快速排序两者之中,选用__堆排序__较为适当。
25.假设哈希表的表长为m,哈希函数为H(key),若用线性探查法解决冲突,则探查地址序列的形式表达为__hi=(H(key)+I)/m___。
三、解答题(本大题共4小题,每小题5分,共20分)
26.假设通信电文使用的字符集为{a,b,c,d,e,f},名字符在电文中出现的频度分别为:
34,5,12,23,8,18,试为这6个字符设计哈夫曼编码。
请先画出你所构造的哈夫曼树(要求树中左孩子结点的权值小于右孩子结点的权值),然后分别写出每个字符对应的编码。
27.已知一个图如下所示,其顶点按a、b、c、d、e、f顺序存放在邻接表的顶点表中,请画出该图的邻接表,使得按此邻接表进行深度优先遍历时得到的顶点序列为acbefd,进行广度优先遍历时得到的顶点序列为acbdfe。
28.已知两个4×5的稀疏矩阵的三元组表分别如下:
0141601132
12218122-22
234-2522569
3422833425
44251
请画出这两个稀疏矩阵之和的三元组表。
解:
29.从空树起,依次插入关键字40,8,90,15,62,95,12,23,56,32,构造一棵二叉排序树。
(1)画出该二叉排序树
(2)画出删去该树中元素值为90的结点之后的二叉排序树。
1.计算机识别、存储和加工处理的对象被统称为( B B.数据元素
2.在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是( B ) B.O(n)
3.队和栈的主要区别是( D )D.限定插入和删除的位置不同
4.链栈与顺序栈相比,比较明显的优点是( D ) D.不会出现上溢的情况
5.采用两类不同存储结构的字符串可分别简称为( B ) B.顺序串和链串
6.在目标串T[0..n-1]=″xwxxyxy″中,对模式串P[0..m-1]=″xy″进行子串定位操作的结果是( C ) C.3
7.已知广义表的表头为a,表尾为(b,c),则此广义表为( B ) B.(a,b,c)
8.二维数组A按行优先顺序存储,其中每个元素占1个存储单元。
若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为( C )C.472
9.二叉树中第5层上的结点个数最多为( D ) D.32
10.下列编码中属前缀码的是( A )A.{1,01,000,001}
11.如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是( D ) D.有向无环图
12.对n个关键字的序列进行快速排序,平均情况下的空间复杂度为( D ) D.O(n logn)
13.对表长为n的顺序表进行顺序查找,在查找概率相等的情况下,查找成功的平均查找长度为( n/2 )
A. B.
C. D.n
14.对于哈希函数H(key)=key%13,被称为同义词的关键字是( D ) D.25和51
15.稠密索引是在索引表中( )
A.为每个记录建立一个索引项 B.为每个页块建立一个索引项
C.为每组记录建立一个索引项 D.为每个字段建立一个索引项
二、填空题(每小题2分,若有两个空格,每个空格1分,共20分)
16.当问题的规模n趋向无穷大时,算法执行时间T(n)的数量级被称为算法的___时间复杂度_
17.在链表的结点中,数据元素所占的存储量和整个结点所占的存储量之比称作_存储密度___
18.已知链栈的结点结构为栈顶指针为top,则实现将指针p所指结点插入栈顶的语句依次为___date_____和_next_______。
19.空串的长度是___0_____;空格串的长度是____空格的数目____。
20.假设一个6阶的下三角矩阵B按列优先顺序压缩存储在一维数组A中,其中A[0]存储矩阵的第一个元素b11,则A[14]存储的元素是______b63__。
21.在一棵度为3的树中,度为2的结点个数是1,度为0的结点个数是6,则度为3的结点个数是____2____。
22.如图所示的有向无环图可以排出________种不同的拓扑序列。
23.利用筛选法将关键字序列(37,66,48,29,31,75)建成的大根堆为(__75,66,48,29,31,37)。
24.对长度为20的有序表进行二分查找的判定树的高度为___5_____。
25.在多重表文件中,次关键字索引的组织方式是将_次关键字相同_的记录链接成一个链表。
三、解答题(本大题共4小题,每小题5分,共20分)
26.对于单链表、单循环链表和双向链表,如果仅仅知道一个指向链表中某结点的指针p,能否将p所指结点的数据元素与其确实存在的直接前驱交换?
请对每一种链表作出判断,若可以,写出程序段;否则说明理由。
date next单链表和单循环链表的结点结构为prior date next
双向链表的结点结构为
(1)单链表:
(不可以,无法找到前驱接点)
(2)单循环链表(可以:
q=p->next;while(q->next!
=p)q=q->next;q->data<->p->data;(3)双向链表(可以:
p->prior->data<->p->data;)
27.假设通信电文使用的字符集为{a,b,c,d,e,f,g},字符的哈夫曼编码依次为:
0110,10,110,111,00,0111和010。
(1)请根据哈夫曼编码画出此哈夫曼树,并在叶子结点中标注相应字符;
(2)若这些字符在电文中出现的频度分别为:
3,35,13,15,20,5和9,求该哈夫曼树的带权路径长度。
28.当采用邻接表作为图的存储结构时,也可将邻接表中的顶点表由顺序结构改为链表结构。
(1)请分别画出这种邻接表的顶点链表结点和边表结点,并说明结点中各个域的作用;
(2)对如图所示的有向图画出这种邻接表。
29.已知4阶B-树如图所96示。
(1)分别画出将关键字23和89相继插入之后的B-树。
(2)画出从插入之前的B-树中删除关键字51之后的B-树。
一、单项选择题(本大题共15小题,每小题2分,共30分)
1.在数据结构中,数据的逻辑结构可以分成( B ) B.线性结构和非线性结构
2.在以单链表为存储结构的线性表中,数据元素之间的逻辑关系用( C )
C.指向后继元素的指针表示
3.设p指向单链表中的一个结点,s指向待插入的结点,则下述程序段的功能是( D )
s -> next = p -> next; p -> next = s;t = p -> data; p -> data = s -> data; s ->data = t;
D.在结点*p之前插入结点*s
4.栈和队列都是( A )A.限制存取位置的线性结构
5.若数组s[0..n-1]为两个栈s1和s2的共用存储空间,且仅当s[0..n-1]全满时,各栈才不能进行进栈操作,则为这两个栈分配空间的最佳方案是:
s1和s2的栈顶指针的初值分别为( C )C.-1和n
6.执行下列程序段后,串X的值为( D )
S=〞abcdefgh〞; T=〞xyzw〞;substr (X,S,2,strlen(T));
substr (Y,S, stelen(T),2) strcat (X,Y); D.〞cdefef〞
7.多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为( D )
D.数组是多维结构,内存是一维结构
8.从广义表LS=((p, q), r, s)中分解出原子q的运算是( B )
B.head (tail (head (LS)))
9.在具有n个叶子结点的严格二叉树中,结点总数为( C )C.2n-1
10.若是有向图的一条边,则称( B ) B.vj邻接于vi
11.在一个带权连通图G中,权值最小的边一定包含在G的(A )A.最小生成树中
12.当在二叉排序树中插入一个新结点时,若树中不存在与待插入结点的关键字相同的结点,且新结点的关键字小于根结点的关键字,则新结点将成为( A )A.左子树的叶子结点
13.希尔排序的增量序列必须是( C )C.递减的
14.如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位置,则该排序方法称为( A )A.插入排序
15.设置溢出区的文件是( B ) B.ISAM文件
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
16.下列程序段的时间复杂度为_O(n^2)_
product = 1;for (i = n;i>0; i--)for (j = i+1; j17.已知指针p指向单链表中某个结点,则语句p -> next =p -> next -> next的作用是__删除*P的直接后继结点
18.假设元素只能按a,b,c,d的顺序依次进栈,且得到的出栈序列中的第一个元素为c,则可能得到的出栈序列为_cbad, cbda, cdba__,不可能得到的出栈序列为_cabd, cadb, cdab
19.若链串结点中的指针占4个字节,每个字符占1个字节,则结点大小为2的链串的存储密度为_2 / ( 4 + 2 ) = 1/3____。
20.右图表示的广义表为( ( e ), ( ( e ), ( b, c ) ), ( L ) )。
[img]/
21.若一棵满三叉树中含有121个结点,则该树的深度为_5 // ( 3^5 - 1 ) / ( 3 - 1 ) = 121
22.若以邻接矩阵表示有向图,则邻接矩阵上第i行中非零元素的个数即为顶点vi的_出度
23.若希望只进行8趟排序便能在4800个元素中找出其中值最小的8个元素,并且要求排序过程中所进行的关键字比较次数尽可能少,则应该选用________________排序方法。
24.在含20个关键字的3阶B树(2-3树)上查找一个关键字,至多需要访问___________次外存。
25.文件上的两类主要操作为_____检索___________和__维护______________。
三、解答题(本大题共4小题,每小题5分,共20分)
26.设栈S1的入栈序列为1 2 3 4(每个数字为13个元素),则不可能得到出栈序列3142。
但可通过增设栈S2来实现。
例如,按下图中的箭头指示,依次经过栈S1和S2,便可得到序列3 1 4 2。
如果用H1和H2分别表示栈S1和S2的进栈操作,用P1和P2分别表示两个栈的出栈操作,则得到3 1 4 2的一个操作步骤为
H1,H1,H1,P1,H2,P2,P1,H2,P1,H2,P2,H1,P1,H2,P2,P2
请仿照上例写出利用两个栈从1 2 3 4得到4 1 3 2的操作步骤。
解:
H1,P1,H2,H1,H1,H1,P1,H2,P2,P2,P1,H2,P2,P1,H2,P2
27.已知树如右图所示,
(1)写出该树的后序序列;
(2)画出由该树转换得到的二叉树。
解:
1) EBJKFGHICDA
2) 树变二叉树:
兄弟相连,保留长子的连线.
28.为关键字(17,33,31,40,48)构造一个长度为7的散列表,设散列函数为h(key)=key%7,用开放定址法解决冲突的探查序列是hi = (h(key) + i(key%5+1))%7 0≤i≤6
(1)画出构造所得的散列表;
(2)求出在等概率情况下查找成功时的平均查找长度。
解:
1). 0 1 2 3 4 5 6
. 3117 48 33 40
2) ( 1 + 1 + 3 + 2 + 4 ) / 5 = 11 / 5
29.已知R[1..8]中的元素依次为(12,5,9,20,6,31,24,27),写出按算法MergeSortDC 对R进行自顶向下的二路归并排序过程中,前5次调用函数Merge(R, low, mid, high)时参数 low, mid 和high的值。
void MergeSortDC (int R[], int low, int high )
{
int mid
if (low {
mid = (low +high)/2;
MergeSortDC (R, low, mid);
MergeSortDC (R, mid+1, high);
Merge (R, low, mid, high);}
} // MergeSortDC
解:
(1)第一次调用时的参数值;
(2)第二次调用时的参数值;
(3)第三次调用时的参数值;(4)第四次调用时的参数值;
(5)第五次调用时的参数值;
//此题有一定的难度,涉及到递归调用时,系统堆栈的情况
. low mid high
1) 1 1 2
2) 3 3 4
3) 1 2 4
4) 5 5 6
5) 7 7 8
6) 5 8 6
7) 1 8 4
一、单项选择题(本大题共15小题,每小题2分,共30分)
1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上
( B ) B. 映象的有限集合
2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( D ) D. n-i
3. 若不带头结点的单链表的头指针为head,则该链表为空的( A )A. head==NULL
4. 引起循环队列队头位置发生变化的操作是( A )A. 出队
5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是( D ) D. 2,3,5,1,6,4
6. 字符串通常采用的两种存储方式是( C )C. 顺序存储和链式存储
7. 设主串长为n,模式串长为m(m≤n),则在匹配失败情况下,朴素匹配算法进行的无效位移次数为( C )C. n-m+1
8.