数据结构试题(05B)

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

一.单项选择题(每题2分,共20分)

1.以下数据结构中,()是非线性数据结构

A.图

B.字符串

C.队

D.栈

2.队列的特点是()。

A.先进先出

B. 后进先出

C.没有约束

D. 先进后出

3.有6个元素6,5,4,3,2,1顺序进栈,问下列哪一个是不合法的出栈序列:

A.5,4,3,6,1,2

B.4,5,3,1,2,6

C.3,4,6,5,2,1

D.2,3,4,1,5,6

4.设顺序表的长为n,则其每个元素(查找概率均等)的平均查找长度是()

A.n

B. (n-1)/2

C. n/2

D. (n+1)/2

5.下面关于串的叙述中,哪一个是不正确的()

A.串是字符的有限序列

B.空串是由空格构成的串

C.模式匹配是串的一种重要运算

D.串既可以采用顺序存储,也可以采用链式存储

6.某二叉树结点的中序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E,则其左子树中结点数目为()

A.3

B.2

C.4

D.5

7.如果一个图有e条边,则图中所有顶点的度的和是()。

A.e

B. e/2

C. 2e

D. e-1

8.下面关于图的存储的叙述中正确的是()

A.邻接矩阵占用的存储空间只与图中结点个数有关,而与边数无关;

B.邻接矩阵占用的存储空间只与图中边数有关,而与结点个数无关;

C.邻接表占用的存储空间只与图中结点个数有关,而与边数无关;

D.邻接表占用的存储空间只与图中边数有关,而与结点个数无关。

9.下面的排序算法中,时间复杂度不是O(n2)的是()。

A.直接插入排序

B.冒泡排序

C.二路归并排序

D.直接选择排序

10.已知广义表LS=(a,(b,c),(d,e,f)),该广义表的长度为()。

A.3

B.6

C.1

D.2

二.问答题(每题10分,共40分)

1. 画出与下图所示的二叉树相对应的森林,并写出该森林的先序和后序遍历序列。

A

B C

D E F

G H

A

B D F E

C

2. 对于下面的图,请完成下列任务:

(1)画出它的邻接表 (2)写出从顶点A 出发的深度优先搜索序列 (3)求从A 到其他顶点的最小路径。

3.判别序列(12,70,33,65,24,56,48,92,86,33)是否为小顶堆,如果不是,则把它调整为小顶堆, 写出小顶堆所对应的序列。

4. 已知散列函数为H(K)=K mod 13,关键码序列为25,37,52,43,84,99,120,15,26,11,70,82,1,采用拉链法处理冲突,画出构造的开散列表,并计算查找成功的平均查找长度。

三.算法阅读题(要求:写出算法功能,并举例说明)(每题5分,共15分)

1. struct Node

{

char data;

Node *llink;

Node *rlink;

};

void function1 (Node* root)

3 9 10

8 12 6 15

19

6

if(root!=NULL)

{

function1(root->llink);

cout << root->data << ““;

function1(root->rlink);

}

2.void function2(char A[], int n)

{

char x;

int s, h, m;

for(int i=1;i

{

x = A[i];

s = 0; h = i - 1;

while(s<=h)

{

m = (s+h)/2;

if(x < A[m])

h = m- 1;

else s = m + 1;

}

for(int j=i-1;j>=s;j--) A[j+1] = A[j];

A[s] = x;

}

}

3.int function3( char *d, char *s)

{

int i =0;

while (s[i] != '\0' && d[i] != '\0' )

{

if (d[i] > s[i])

return 1;

else if (d[i] < s[i])

return -1;

i ++;

}

if( d[i] = ='\0' && s[i] != '\0')

return -1;

else if (s[i] = = '\0'&& d[i] != '\0')

return 1;

return 0;

}

四.算法设计题(第一题10分,第二题15分)

1.已知一个整数顺序表L,要求将其拆分为一个正整数顺序表L1和一个负整数顺序表L2。2.无向图采用邻接表方式存储,要求编写按广度优先搜索策略实现对图的遍历算法。

相关文档
最新文档