东北师范大学《数据结构》2017-2018学年期末试卷.docxVIP

  • 0
  • 0
  • 约2.19千字
  • 约 4页
  • 2026-01-21 发布于江西
  • 举报

东北师范大学《数据结构》2017-2018学年期末试卷.docx

东北师范大学考试试卷

课程:数据结构学年学期:2017-2018学年第一学期

考试形式:闭卷 考试时间:120分钟

考试时间120分钟班级学号 姓名

题号

成绩

满分

10

15

10

30

10

25

100

得分

一、判断题(每题2分,共10分)

1、将一棵树转换为二叉树表示后,该二叉树的根结点没有右子树。()

2、子串是主串中任意个连续字符组成的序列。()

3、直接选择排序是一种不稳定的排序方法。()

4、在Huffman树中,权值较大的叶子结点离根较远。()

5、折半搜索只适用于有序表,包括有序的顺序表和有序的链表。()

二、单项选择题(每题3分,共15分)

6、将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号为49的结点的左孩子的编号为:

A、98 B、99 C、50 D、48

7、在待排序文件已基本有序的前提下,下述排序方法中效率最高的是:

A、直接插入排序B、简单选择排序(C、快速排序D、归并排序

8、设森林F中有三棵树,第一、第二和第三棵树的结点个数分别为M1、M2和M3。与森林F对应的二叉树根结点的右子树上的结点个数是:

A、M1 B、M1+M2 C、M3 D、M2+M3

9、对线性表,在下列哪种情况下应当采用链表表示?

A、经常需要随机地存取元素 B、经常需要进行插入和删除操作

C、表中元素需要占据一片连续的存储空间D、表中元素的个数不变

10、对下列关键字序列用快速排序法进行排序时,速度最快的情形是:

A、{21、25、5、17、9、23、30} B、{25、23、30、17、21、5、9}

B、{21、9、17、30、25、23、5} D、{5、9、17、21、23、25、30}

三、填空题(每空2分,共10分)

11、N个结点的二叉树采用二叉链表存放,共有空链域个数为

12、在顺序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查找关键码值12,所需的关键码比较次数为:。

13、二维数组A[0..20][0..10]采用行序为主方式存储,每个元素占4个存储单元,并且A[0][0]的存储地址是1016,则A[9][8]的存储地址是

14、在各种查找方法中,平均查找长度与结点个数无关的是

15、N个结点的二叉树,采用二叉链表存放,空链域的个数为.

四、简答题(每题10分,共30分)

16、简述栈和队列的共同点和不同点。它们与线性表有什么关系?

17、简述算法的定义与特性。

18、举例说明什么是抽象数据类型。

五、构造题(10分)

19、对以下关键字序列建立哈希表:(SUN,MON,TUE,WED,THU,FRI,SAT),哈希函数为H(K)=(K中最后一个字母在字母表中的序号)MOD7。用线性探测法处理冲突,要求构造一个装填因子为0.7的哈希表,并分别计算出在等概率情况下查找成功与不成功的平均查找长度。

六、综合题(25分)

20、下面给出的算法是建立AOV网络并对其进行拓扑排序的算法,其中有多个语句缺失。

voidGraph::TopologicalSort(){

Edge*p,q;inti,j,k;

for(i=0;in;i++){

NodeTable[j].adj=NULL;

};

cinjk;//输入有向边j,k

while(jk){

p=newEdge(k);//建立边结点,dest域赋为k

p→link=NodeTable[j].adj;//链入顶点j的边链表的前

count[k]++; //顶点k入度加一

cinjk;

}

inttop=-1;

for(i=0;in;i++)//建立入度为零顶点的链栈

if(count[i]==0){

count[i]=top;

?;

}

for(i=0;in;i++)

if(top==-1)

{coutNetworkhasacycleendl;return;}

else {

j=top; ;

coutNodeTable[j].dataendl;

q=NodeTable[j].adj;

wh

文档评论(0)

1亿VIP精品文档

相关文档