中南大学计算机数据结构试题参考答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中南大学考试试卷

2015--2016学年上学期期末考试试题时间100分钟

数据结构课程56学时3.5学分考试形式:闭卷

专业年级:计算机科学与技术10级总分100分,占总评成绩70%

姓名班级学号

(本试卷共四道大题,答案全部做在答题纸上!)

一、选择题(每题2分,共24分)

1.以下数据结构中,属于线性结构的是()

A.图B.栈

C.二分查找树D.森林

2.用二分法查找表(a0,a1,a2,a3,……a16),需要比较2次才能找到的元素是()

A.a7和a16 B.a11和a13

C.a1和a14 D.a3和a12

3.用概率查找改进查找效率,是经过多次查找以后使得()

A.查找次数越少的元素查找速度越快

B.查找次数越少的元素越往前存放

C.查找次数越多的元素越往后存放

D.查找次数越多的元素查找速度越快

4.二分查找要求元素( )

A.有序、顺序存储

B.有序、链式存储

C.无序、顺序存储

D.无序、链式存储

5.已知pPre为指向链表中某结点的指针,pNew是指向新结点的指针,以下哪段伪码算

法是将一个新结点插入到链表中pPre所指向结点的后面?()

A.pPre->link = pNew; pNew = null;

B.pPre->link = pNew->link; pNew->link = null;

C.pNew->link = pPre->link; pPre->link = pNew;

D.pNew->link = pPre->link; pPre->link = null;

6.在递归算法执行过程中,计算机系统必定会用到的数据结构是()

A.队列B.链表

C.栈D.二叉树

7.一个队列的入列序为ABCD,则队列的可能输出序列为()

A.DCBA B.ABCD

C.ADCB D.CBDA

8.具有10个叶子结点的二叉树中有()个度为2的结点

A.8B.9

C.10D.11

9.若A=10,B=4,C=6,D=4,E=15则后缀表达式“AB*CD+-E+”的值为( )。

A.45B.31

C.53D.65

10.在一个具有n个顶点的无向图中,要连通全部顶点至少需要()条边。

A.n B.n+1C.n-1D.n/2

11.对数据序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排序变为{9,15,7,8,20,-1,4},则采用的是()算法。

A.直接选择排序B.冒泡排序

C.直接插入排序D.希尔排序

12.以下哪个算法可以判断出一个有向图中是否有回路()。

A.广度优先遍历B.拓扑排序C.求最短路径D.求关键路径

二、填空题(每题2分,共20分)

1.一个算法的时间效率表达式是40n2+2log2n+1000, 这个算法的大O表达式是。2.向一个长度为n的顺序表中的第i个元素(1≤i≤n)之前插入一个元素时,需要向后移动_____ _____个元素。

3.如果经常对线性表进行插入和删除运算,则最好采用存储结构。

4.在有n个叶子结点的哈夫曼树中,总结点数是_______。

5.带头结点的双循环链表L为空表的条件是_______。

6.用数组Q(其下标在0…n-1之间,共有n个元素)表示一个循环队列,front 为当前队头元素的前一个位置,rear为队尾元素的位置,假设队列中的元素个数总小于n,则求队列中元素个数的公式是_____________________。

7.在双链表中,在指针P所指结点前面插入一个结点*S时的语句序列是:

S->next=P;S->prior=P->prior;P->prior=S;_______;

8.表达式a*(b+c)-d的后缀表达式是。

9.下面程序段的功能是实现冒泡排序算法,请在下划线处填上正确的语句。

void bubble(int r[n])

{

for(i=1;i<=n-1; i++)

{

for(exchange=0,j=0; j

if (r[j]>r[j+1]){temp=r[j+1];______________;r[j]=temp;exchange=1;} if (exchange==0) return;

}

}

10.下面程序段的功能是实现二分查找算法,请在下划线处填上正确的语句。

struct record{int key; int others;};

int bisearch(struct record r[ ], int k)

{

int low=1,mid,high=n;

while(low<=high)

{

________________________________;

if(r[mid].key==k) return(mid);

else if(r[mid].key>k) high=mid-1;else low=mid+1;

}

return(0);

}

三、应用题(每题9分,共36分)

1.已知一棵二叉树,其中序序列DBCAFGE,后序序列DCBGFEA,构造该二叉树。

2.如下图所示为5个乡镇之间的交通图,乡镇之间道路的长度如图中边上所注。现在要

在这5个乡镇中选择一个乡镇建立一个消防站,问这个消防站应建在哪个乡镇,才能使离消防站最远的乡镇到消防站的路程最短。试回答解决上述问题应采用什么算法,并写出应用该算法解答上述问题的每一步计算结果。

相关文档
最新文档