数据结构试题四套文档格式.docx
- 文档编号:18912535
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:22
- 大小:213.76KB
数据结构试题四套文档格式.docx
《数据结构试题四套文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构试题四套文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
C.{15,28,46,37,84,41,58,62}
D.{15,28,46,37,84,58,62,41}
二、填空题(共20分每空2分)
1.链式存储结构的特点是借助(指针)来表示数据元素之间的逻辑关系。
2.假设带头结点的非空单循环链表中仅设尾指针L,则在第1个数据元素结点之前插入指针s所指结点的语句依次是(s->
next=L->
next->
next;
),(L->
next=s;
)。
3.无表头结点的链队列Q为空的条件是(Q.front=Q.rear=Null)。
4.不含任何字符的串称为(空串)。
5.表达式“a*b+c/d*f-g”的后缀表达式为(ab*cd/f*+g-)。
6.如果排序过程(具有相同关键字的待排记录的相对位置没有发生改变)称该排序方法是稳定的
7.由权值分别为4,6,2,3的叶子生成一个哈夫曼树,它的带权路径长度为(29)
8.从空树起,依次插入关键字73,1l,35,48,52,27,66构造所得的二叉排序树,在等概率查找的假设下,查找成功时的平均查找长度为(25/7)。
9.判断线索二叉树中某结点指针P所指结点有左孩子的条件是(P->
Ltag==0)。
三、应用题(共50分)
1.简述顺序表和链表存储方式的特点。
(6分)
2.
(1)已知一个二叉树如图1所示:
写出该二叉树的先序,中序,后序遍历序列(3分)
(2)把图1对应的二叉树转换为所对应的森林。
(3分)
(3)已知一棵二叉树的中序遍历序列为:
dfebagc,先序遍历序列为:
abdefcg,请画出这棵二叉树(4分)
图1
3.对一组关键字:
26,85,37,20,62,13,29,15,18采用快速排序方法进行排序,用第一个关键字作枢轴,请写出每趟排序结果。
(只写每趟结果)(8分)
4.依次输入序列(62,68,30,61,25,14,53,47,90,84)中元素,生成一棵二插排序树
(1)画出生成后的二叉排序树(3分)
(2)画出删除结点30后的二叉排序树。
(4分)
5.画出右图所示二叉树的中序线索链表的存储表示(带头结点)(7分)。
6.利用广义表的head和tail操作,可从广义表L=((a,b),(c,d))中分解得到原子c,其操作表达式为head(head(tail(L)));
分别写出从下列广义表中分解得到b的操作表达式。
(1)L1=(a.,b,c,d);
(2)L2=(((a),(b),(c),(d)))。
(6分)
7.求出下图的一棵最小生成树试画出构造过程(表明你使用的算法以及起始顶点)(6分)
四、算法设计(任选一题,共10分)
1.假设以带头结点的单链表表示非递减有序表,设计一算法删除表中所有值大于min且小于max(假设min<
max)同时释放结点空间。
2.编写算法统计二叉树的叶子结点个数.
A卷答案
一、选择(共20分每题只有一个正确答案每题2分)
1-5.D B C A C 6-10.A D B D D
二、填空题(共20分每空2分)
1.指针
2.s->
L->
next=s.
3.Q.front=Q.rear=Null
4.空串
5.ab*cd/f*+g-
6.具有相同关键字的待排记录的相对位置没有发生改变
7.29
8.25/7
9.P->
Ltag==0
三、应用题(共50分)
1.(共6分)答:
顺序存储:
用地址连续的地址表示逻辑上的相邻关系。
可以实现随机存取,但进行插入删除操作时需要移动大量元素。
适合于查询操作比较多时。
(3分)
链式存储:
用随机的不连续的存储地址存储线性表,通过指针来表示逻辑上的相邻关系。
不能随机存储,要找到链表里面某一元素时必须从头指针开始,依次访问链表。
插入删除操作时只需修改指针,不用移动元素。
适合插入、删除操作比较多时。
评分细则:
两者定义2分,优点2分,缺点2分。
2.(共10分)
(1)先:
abdgfhce 中:
dfghbace 后:
fhgdbeca
评分细则:
一个遍历序列1分
(2)
一个图1分
(3)
4分
3.(共8分)
第一趟:
18 15 13 20 26 62 29 37 85 (4分)
第二趟:
13 15 18 20 26 37 29 62 85 (2分)
第三趟:
13 15 18 20 26 29 37 62 85 (2分)
评分细则:
第一趟(4分),第二趟、第三趟各2分。
4.(共7分)
(1)
(2) 或者
(2)
评分细则:
(1)3分
(2)4分
5.(共7分)
整体框架2分,标志域2分,线索3分
6.(共6分)
(1)head (tail(L1))
(2)head(head(tail(head(L2))))
(1)3分
(2)3分
7.(共6分)
答案一:
答案二:
答案三:
1、2、3,4步2分;
5、6步2分;
7步2分
四、算法设计(任选一题,共10分)
1.(共10分)
StatusDelete_Between(LinkList&
L,intmax,intmin)
{p=L;
(2分)
While(p->
data<
=min)p=p->
(3分)
if(p->
next)
{q=p->
While(q->
max){k=q;
q=q->
free(k);
} (3分)
p->
next=q;
} (2分)
}
2.(共10分)
intLeafCount_Bitree(BiTreeT)
{ if(!
T)return0;
elseif(!
T->
lch&
&
!
rch)return1;
(3分)
else
returnLeafCount_Bitree(T->
lch)+LeafCount_Bitree(T->
rch);
(4分)
}
B卷
1.一个算法应该是( B )。
A.程序 B.问题求解步骤的描述
C.要满足五个基本特性 D.A和C.
2.下面程序段的时间复杂度为( D )。
s=0;
for(i=1;
i<
n;
i++)
for(j=1;
j<
i;
j++)
s+=i*j;
A.O
(1) B.O(logn) C.O(n) D.O(n2)
3.已知指针p和q分别指向某单链表中第一个结点和最后一个结点。
假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为( A )。
A.q->
B.s->
C.p->
D.s->
4.已知循环队列的存储空间为数组data[21],且当前队列的头指针和尾指针的值分别为8和3,则该队列的当前长度为( C )。
A.5 B.6 C.16 D.17
5.通常将链串的结点大小设置为大于1是为了( B )。
A.提高串匹配效率 B.提高存储密度
C.便于插入操作 D.便于删除操作
6.表头和表尾均为空表的广义表是( B )。
A.() B.(())
C.((())) D.((),())
7.设栈的输入序列是1,2,3,4则( D )不可能是其出栈序列。
A.1,2,4,3, B.2,1,3,4,
C.1,4,3,2, D.4,3,1,2,
8.用二叉链表表示具有n个结点的二叉树时,值为空的指针域的个数为( C )。
A.n-1 B.n
C.n+l D.2n
9.为便于判别有向图中是否存在回路,可借助于( D )。
A.广度优先搜索算法 B.最小生成树算法
C.最短路径算法 D.拓扑排序算法
10.下列四个序列中,哪一个是堆(C )。
A.75,65,30,15,25,45,20,10 B.75,65,45,10,30,25,20,15
C.75,45,65,30,15,25,20,10 D.75,45,65,10,25,30,20,15
二、填空题(共20分,每空2分)
1.线性表L=(a1,a2,…,an)含有n个元素,用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是 (n-1)/2。
2. 操作受限后进先出的线性表 是栈。
3.在目标串S[0..n-1]=″xwxxyxy″中T=”xy”,则Index(S,T,0)的执行结果是 3 。
4.由权值分别为4,6,2,8的叶子生成一个哈夫曼树,它的带权路径长度为 38 。
5.三元组表适合存储 稀疏 矩阵.
6.从空树起,依次插入关键字73,81,35,48,52,27,66和构造所得的二叉排序树,在等概率查找的假设下,查找成功时的平均查找长度为 20/7 。
7.在折半查找中,要求被查找的元素必须采用 顺序 存储结构。
8.产生冲突现象的两个关键字称为该散列函数的 同义词 。
9.若采用孩子兄弟链表作为树的存储结构,则树的后根遍历应对应采用二叉树的 中根 遍历。
10.对一个栈S,栈底指针用base表示,栈顶指针用top表示,数组的长度为L,则栈满的条件为 (s.top-s.base)>
=L 。
(5分)
写出该二叉树的先序,中序,后序遍历序列(3分)
abdefcg,请画出这棵二叉树(4分)
3.画出图2所示二叉树的中序线索链表的存储表示(带头结点)(5分)。
4.已知带权图的邻接表如下所示,其中边表结点的结构为:
(8分)
依此邻接表从顶点C出发进行深度优先遍历。
(1)写出依次从顶点C出发进行的深度优先遍历序列。
(2)写出依次从顶点C出发进行的广度优先遍历序列。
5.对一组关键字:
26,85,37,10,62,18,29,15采用快速排序方法进行排序,用第一个关键字作枢轴,请写出每趟排序结果。
(只写每趟结果)(7分)
6.利用广义表的head和tail操作,可从广义表L=((a,b),(c,d))中分解得到原子c,其操作表达式为
head(head(tail(L)));
(1)L1=((a.,b),c,d);
(2)L2=((a),(b),(c),d)。
(7分)
7.已知一个无向图如下图所示,要求分别用Prim(普里姆)(假设以①为起点)和Kruskal(克鲁斯卡尔)算法生成最小树,试画出构造过程。
四、算法设计(10分)
1.假设以带头结点的单链表表示非递减有序表,单链表的类型定义如下:
typedefstructnode{
DataTypedata;
structnode*next;
}LinkNode,*LinkList;
设计一算法使得插入一个数值为x的结点后,单链表仍有序。
(5分)
2.设从键盘输入一整数的序列:
a1,a2,a3,…,an,试编写算法实现:
用栈结构存储输入的整数,当ai≠-1时,将ai进栈;
当ai=-1时,输出栈顶整数并出栈。
算法应对异常情况(入栈满等)给出相应的信息。
(注意:
算法中直接利用栈的基本操作,如push(),pop(),stackempty(),stacklength等来实现)。
B卷答案
一、选择(每题2分,共20分)
1-5..B D A C B 6-10.B D C D C
二、填空题(每空2分,共20分)
1.(n-1)/2
2.操作受限后进先出的线性表
3.3
4.38
5.稀疏
6.20/7
7.顺序
8.同义词
9.中根
10.(s.top-s.base)>
=L
1.(5分)答:
顺序存储:
链式存储:
评分细则:
2.答:
(1)先:
abdghcef 中:
dhgbaefc 后:
hgdbfeca(3分)
(2) (3分)
(3)(4分)
3.(5分)答:
4.(8分)答:
(1) CDBAFE
(2) CDABFE
(1)4分;
(2)4分。
5.(7分)答:
(1) 1518102662372985
(2) 1015182629376285
(3) 1015182629376285
(1)2分;
(2)2分;
(3)3分。
6.(7分)答:
(1)head(tail(head(L1)))
(2)head(head(head(tail(L2))))
(1)3分;
7.(8分)答:
(1)
(2) (3) (4) (5)
(1)
(2) (3) (4) (5)
Prim(普里姆)和Kruskal(克鲁斯卡尔)最小树各4分。
四、算法设计(每题5分,共10分)
1.(5分)
voidInsertLlist(LinkList&
L,ElemTypex)
{LinkListP,S,q;
P=L->
q=L;
for(;
P&
P->
x;
q=P;
P=P->
next);
S=(LinkList)malloc(sizeof(LinkNode));
S->
data=x;
next=NULL;
next=P;
q->
next=S;
}
2.(5分)
void Function(StackS,inta[n])
{ inti,e,length;
for(i=0;
n;
{if(a[i]==-1)
{if((S.top-S.base)>
=StackLength(S))
{ S.base=(ElemTyp*)realloc(S.base,(S.stacksize+StackIncrement)*sizeof(ElemType));
S.top=S.base+S.stacksize;
S.stacksize=S.stacksize+StackIncrement;
}
Push(S,s[i]);
else
if(!
StackEmpty){Pop(S,e);
Printf(e);
}
}
C卷
一、单项选择(共20分,每小题2分)
1.下列关于存储结构的叙述中,正确的是____C_____。
A.顺序存储方式只能用于存储线性结构。
B.线性表的逻辑顺序与存储顺序总是一致的。
C.散列法存储的基本思想是由关键字的值决定数据的存储地址。
D.静态链表具有动态链表的优点,它存取表中第i个元素的时间与i无关。
2.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移
C
个元素。
A.n-i
B.n-i-1
C.n-i+1
D.i
3.设n个元素的进栈序列是a1,a2,a3,…,an,出栈序列是1,2,3,…,n,若a3=1,则a1的值是
。
A.可能是2
B.一定是2
C.不可能是2
D.不可能是3
4.设栈s和队列Q的初始状态为空,
元素b1
,b2,
,b3
,b4
,b5和b6
依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是b2
,b4
,b6
,b5
,b1
,,则栈S的容量至少应该是
A
A.3
B.4
C.5
D.其它
5.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为
A.
53
B.
48
C.
72
D.
24
6.如将一棵有n个结点的完全二叉树按顺序存放方式,存放在下标编号为0,
1,…,
n-1的一维数组中,设某结点下标为k(k>
0),则其双亲结点的下标是
A.(k-1)/2
B.(k+1)/2
C.k/2
D.k-1
7.在一棵高度小于3的二叉树中,若结点的前序序列为ABCDEF,则结点的中序序列有可能为
B
A.DCEBAF
B.CBDAFE
C.BCDAFE
D.FCADBE
8.在下面几组关键字中,哪个是最小堆____B___。
A.{05,13,55,94,17,46,42}
B.{05,42,13,55,94,17,46}
C.{05,42,17,94,55,13,46}
D.{94,42,55,01,17,13,46}
9.有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉搜索树,若希望高度最小,则应选择下面哪个序列输入
A.45,24,53,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 试题 四套