河南工业大学2013(1)软件工程12级-数据结构试卷B

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

学院名称: 专业班级: 姓 名: 学 号:

┃┃┃┃┃┃┃┃┃┃┃┃ 密

┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃ 封

┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃ 线

┃┃┃┃┃┃┃┃┃┃┃┃┃┃

请 不

要 在 密

线 内

2012 至 2013 学年 第 2 学期

数据结构 试卷B 卷

出卷教师: 适应班级: 软件工程12级 考试方式: 闭卷 成绩比例:本试卷考试分数占总评成绩的 80 % 题号 一 二 三 四 五 六 七 八 九 十 总 分 得分

复查总分:

所有答案必须写在答题纸上

一、选择题(共15 题,每小题 1 分,共 15 分) 1.下面程序的时间复杂度为( )。 k = 0;

for(i=1; i<=n; i++) for(j=i; j<=n; j++) k++;

A .O(n)

B .O(n 3)

C .O(nlog 2n)

D .O(n 2) 2.下面关于算法说法错误的是( )。

A .算法最终必须由计算机程序实现

B .为解决某问题的算法同为该问题编写的程序含义是相同的

C .算法的可行性是指指令不能有二义性

D .以上几个都是错误的

3.以下数据结构中,哪一个是线性结构?( )

A .图 B. 二叉树 C. 稀疏矩阵 D. 串 4.下述哪一条是顺序存储结构的优点?( )

A .存储密度大

B .插入运算方便

C .删除运算方便

D .可方便地用于各种逻辑结构的存储表示

5.若长度为n 的线性表采用链式存储结构,在其第i 个位置插入一个新元素的算法的时间复杂度为( )(1<=i<=n+1)。

A .O(0)

B .O(1)

C .O(n)

D .O(n 2)

6.在一个以 L 为头指针的单循环链表中,p 指针指向链尾的条件是( )。 A .p->next=L B .p->next=NULL C .p->next->next=NULL D .p->data=-1

7.一个栈的输入序列为a b c d e ,则下列序列中不可能是栈的输出序列的是( )。 A .b c d a e B .e d a c b C .b c a d e D .a e d c b 8.串的长度是指( )。

A .串中所含不同字母的个数

B .串中所含字符的个数

C .串中所含不同字符的个数

D .串中所含非空格字符的个数 9.设广义表L=((a,b,c )),则L 的长度和深度分别为( )。

A. 1和1

B. 1和3

C. 1和2

D. 2和3 10.一棵具有 n 个结点的完全二叉树的树高度(深度)是( )。 A .⎣logn ⎦+1 B .logn+1 C .⎣logn ⎦ D .logn-1 11.由3个结点可以构造出多少种不同的二叉树?( ) A .2 B .3 C .4 D .5 12.n 个结点的完全有向图含有边的数目( )。 A .n*n B .n(n+1) C .n/2 D .n*(n-1) 13.关键路径是AOE 网络中( )。

A .从源点到汇点的最长路径

B .从源点到汇点的最短路径

C .最长回路

D .最短回路

14.散列表的地址区间为0-17,散列函数为H(key) = key mod 17。采用线性探测法处理冲突,并将关键字序列26,25,72,38,8,18,59依次存储到散列表中,则元素59存放在散列表中的地址是( )。

A . 8 B. 9 C. 10 D. 11

15.若需在O(nlog 2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是( )。

A .快速排序

B .堆排序

C .归并排序

D .直接插入排序 二、判断题(共 10 题,每小题 1 分,共 10 分)((叙述正确的打√,错误的打×)) 1.数据的物理结构是指数据在计算机内的实际存储形式。( ) 2.线性表采用链表存储时,结点的存储空间可以是不连续的。( )

3.队列是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。( ) 4.数组不适合作为任何二叉树的存储结构。( )

5.给定一棵树,可以找到唯一的一棵二叉树与之对应。( )

学院名称: 专业班级: 姓 名: 学 号:

┃┃┃┃┃┃┃┃┃┃┃┃ 密

┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃ 封

┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃ 线

┃┃┃┃┃┃┃┃┃┃┃┃┃┃

请 不

要 在 密

线 内

6.有e 条边的无向图,在邻接表中有e 个结点。( ) 7.需要借助于一个队列来实现图的广度优先遍历算法。( )

8.在AOE 图中,关键路径上某个活动的时间缩短,整个工程的时间也就必定缩短。( ) 9.折半查找法的查找速度一定比顺序查找法快。( ) 10.平均时间性能最佳的排序算法是快速排序。( ) 三、应用题(共6题,共 55分)

1.(10分)设二叉树的中序遍历序列是EBCDAFHIGJ ,先序遍历序列是ABECDFGHIJ ,试画出该二叉树,并画出它的中序线索树。

2.(12分)假定用于通讯的电文仅有8个字母c1,c2,…,c8组成,各个字母在电文中出现的频率分别为5,25,3,6,10,11,36,4。构造哈夫曼树,并为这8个字母设计哈夫曼编码。

3.(6分)给出用克鲁斯卡尔算法构造带权图(如图1)的最小生成树的过程。从0开始,画出中间步骤。

4.(8分)已知长度为7的表(34,23,55,9,43,68),试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出每插入一个元素后二叉排序树的状态。并计算等概率情况下查找成功的平均查找长度。

5.(12分)根据下面给定的带权有向图G (如图2),利用迪杰斯特拉(Dijkstra )算法,求V0到其余各顶点的最短路径。要求画出有向图G 的带权邻接矩阵,并写出求解最短路径的过程。 6.(7分)已知待排序的关键字序列为(503,87,512,61,908,170,897,275,653,462),请画出根据以上序列建立一个小顶堆的过程及结果。

V0

V1V2

V4

V3

10

100

30

50

10

20

60

四、算法设计题(共 2 题,每小题 10 分,共20 分)

1.有一个带头结点的单链表,编写一个算法实现查找链表中第一个元素值与给定值e 相等的结点,查找成功时返回该结点的地址,否则回-1。单链表的类型定义如下。 typedef struct LNode{

ElemType data; struct LNode *next; } LNode, *LinkList;

2.编写算法,将二叉树中所有结点的左、右子树相互交换。二叉链表的类型定义如下。 typedef struct BiTNode{ TElemType data;

struct BiTNode *lchild,*rchild; }BiTNode,*BiTree;

图1

图2

相关文档
最新文档