当前位置:文档之家› 湖南大学(866)数据结构模拟题

湖南大学(866)数据结构模拟题

if(BT==NULL)return0;//2分
elsereturnBTreeCount(BTàleftChild)+BTreeCount(BT-->rightChild)十l;
//4分
}
湖南大学《数据结构》2016年考研模拟试题
第二套
一、单选题:判断下列各小题叙述的正误。对,在题号前的括号内填入“√”;错,在题号前填入“×”。(每小题3分,共24分)
20.稠密稀疏
三、判断题(每小题1分,共10分)
21.对22.错23.对24.错25.对26.对,27.错28.错29.错30.错
四、运算题(每小题8分,共40分)
31.根据题意,矩阵A中当元素下标I与J满足I≥J时,任意元素A[I][J]在一维数组B中的存放位置为I*(I+1)/2+J,因此,A[8][5]在数组B中位置为
else{
while(p!=NULL&&__________){
t=p;p=pà1ink;
deletet;
}
q一>link=p;
}
}
}
37、下面给出一个排序算法,它属于数据表类的成员函数,其中currentSize是数据
表实例的当前长度,Vector[]是存放数据表元素的一维数组。
Template<classT>。
13、链表对于数据元素的插入和删除不需移动结点,只需改变相关结点的域的值
14、在一个链式栈中,若栈顶指针等于NULL则为。
15、主程序第一次调用递归函数被称为外部调用,递归函数自己调用自己被称为内部调用,它们都需要利用栈保存调用后的地址。
16、在一棵树中,结点没有后继结点。
17、一棵树的广义表表示为a((c,d(e,f),g(h)),i(j,k(x,y))),结点f的层数为。假定根结点的层数为0。
25、一个广义表的表尾总是Байду номын сангаас个广义表。()
26、当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。(
27、对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。()
28、存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。(
p—>data=temp//4分
37.算法功能及执行效率
(1)该算法的功能是直接插入排序。(4分)
(2)n—10(2分2分
38.算法功能:生成一棵新二叉树并返回树根指针,该二叉树是已知二叉树BT中所有结点的左、右子树交换的结果。
六、6分,请根据编程情况酌情给分。
39.
IntBTreeCount(BinTreeNode*BT){
//从头指针为1a的带表头结点的有序链表中删除所有值相同的多余元素,
//并释放被删结点空间。
ListNodep,q,t;ElemTypetemp;
p=la-->link;
while(p!=NULL){
q=P;
temp=P一>data;
p=p一>link;
if(P!=NULL&&__________)P=P->link;
A、较慢B、较快C、相同
二、填空题(每小题1分,共10分)
11、二维数组是一种非线性结构,其中的每一个数组元素最多有个直接前驱(或直接后继)。
12、将一个n阶三对角矩阵A的三条对角线上的元素按行压缩存放于一个一维数组B中,A[0][0]存放于B[0]中。对于任意给定数组元素B[K],它应是A中第行的元素。
if(temp.kev<Vector[j].key)Vector[j+1]=Vector[j];
elsebreak;
Vector[j+1]=temp;


(1)写出该算法的功能。
(2)针对有n个数据对象的待排序的数据表,在最好情况下,算法的排序码比较次数和对象移动次数分别是多少?
比较次数:
移动次数:
H(Mar)=「13/2」=6,成功.H(Apr)=「l/2」=0,成功.
H(May)=「13/2」=6,=7,成功,H(June)=「10/2」=5,=6,=7,=8,成功.
H(July)=「10/2」=5,=6,=7,=8,=9,成功。
H(Aug)=「l/2」=0,=1,成功.H(Sep)=「19/2」=9,=10,成功.
BinTreeNode*BinTreeSwopX(BinTreeNode*BT){
if(BT==NULL)returnNULL;
else{
BinTreeNode*pt=newBinTreeNode;
pt一>data=BT一>data;
pt一>rightChild=BinTreeswopX(BT一>leftChild);
8*(8+1)/2+5=4l
32.while(Ha!=NULL){
if(Ha一>data==x)n++;
Ha=Ha一>1ink;
}
33.后序序列:C,B,F,E,I,J,H,G,D,A
34.判断结果:
元素值
34
56
58
63
94
比较次数
2
1
3
4
4
//对1个给1分,全对给8分
35.H(Jan)=「10/2」=5,成功.H(Feb)=「6/2」=3,成功.
A、20B、18C、25D、22
8、在有向图中每个顶点的度等于该顶点的()。
A、入度B、出度C、入度与出度之和D、入度与出度之差
9、在基于排序码比较的排序算法中,()算法的最坏情况下的时间复杂度不高于O(n10g2n)。
A、起泡排序B、希尔排序C、归并排序D、快速排序
10、当α的值较小时,散列存储通常比其他存储方式具有()的查找速度。
intBTreeCount(BinTreeNode*BT);
模拟题
一、选择题(每小题1分,共10分)
1.A2.B3.B4.D5.C
6.A7.C8.C9.C10.B
二、填空题(每小题1分,共10分)
11.212.「(K+1)/3」13.指针14.空栈15.返回16.叶子
17.318.119.n(n一1)/20
Mar
May
June
July
Sep
Oct
Nov
(1)
(2)
(1)
(1)
(1)
(1)
(2)
(4)
(5)
(2)
(5)
(6)
(2)搜索成功的平均搜索长度为
l/12*(1+2+l+l+l+l+2+4+5+2+5+6):3l/12(2分)
五、算法分析题(每小题8分,共24分)
36.p——>data>temp//4分
Intcount(ListNode*Ha,ElemTypex)
{//Ha为不带头结点的单链表的头指针
intn=0;
while(Ha一>link!=NULL){
Ha=Ha-->link;
if(Ha一>data==x)n+十;

returnn;
33.已知一棵二叉树的前序和中序序列,求该二叉树的后序序列。
21、数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。(
22、链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。(
23、在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。
24、通常递归的算法简单、易懂、容易编写,而且执行的效率也高。()
C、first一>link==first
D、first!=NUlL
3、当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为()。
A、n一2B、n—lC、nD、n+1
4、在系统实现递归调用时需利用递归工作记录保存实际参数的值。在传值参数情形,需为对应形式参数分配空间,以存放实际参数的副本;在引用参数情形,需保存实际参数的(),在被调用程序中可直接操纵实际参数。
()(1)有n个结点的不同的二叉树有n!棵。
()(2)直接选择排序是一种不稳定的排序方法。
()(3)在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。
()(4)当3阶B树中有255个关键码时,其最大高度(包括失败结点层)不超过8。
18、在一棵AVL树(高度平衡的二叉搜索树)中,每个结点的左子树高度与右子树高度之差的绝对值不超过。
19、n(n>0)个顶点的无向图最多有条边,最少有条边。
20、在索引存储中,若一个索引项对应数据对象表中的一个表项(记录),则称此索引为索引,若对应数据对象表中的若干个表项,则称此索引为索引。
三、判断题(每小题1分,共10分)
29、直接选择排序是一种稳定的排序方法。()
30、闭散列法通常比开散列法时间效率更高。()
四、运算题(每小题8分,共40分)
31、设有一个10X10的对称矩阵A,将其下三角部分按行存放于一个一维数组B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。
32、这是一个统计单链表中结点的值等于给定值x的结点数的算法,其中while循环有错,请重新编写出正确的while循环。
H(Oct)=「15/2」=7,=8,=9,=10,=1l,成功.
H(Nov)=「14/2」=7,=8,=9,=10,=11,=12,成功.
H(Dec)=「4/2」=2,成功.
(1)相应的散列表(6分)错一个存储位置扣1分,最多扣6分。
相关主题