《数据结构》期中考试卷

《数据结构》期中考试卷
《数据结构》期中考试卷

郑州大学西亚斯学院2012-2013学年第一学期期中试卷

一 .选择题(共 30 分,每题 2 分)

1. 算法的计算量的大小称为计算的( )。

A .效率

B . 复杂性

C . 现实性

D .难度

2. 算法的时间复杂度取决于( ) A .问题的规模 B .待处理数据的初态 C . A 和B

3. 从逻辑上可以把数据结构分为( )两大类。

A .动态结构、静态结构

B .顺序结构、链式结构

C .线性结构、非线性结构

D .初等结构、构造型结构

4. 设一个栈初始化为空栈,六个数据元素a,b,c,d,e,f 依次进栈,出栈的顺序是b,d,c,f,e,a,该栈运算过程中栈内最多有( )个元素。

A . 6

B . 5

C . 4

D . 3

5. 程序段 for ( i=n-1; i>=1; i--)

for (j=1;j<= I;j++)

if a[j]>a[j+1]

then a[j]与a[j+1]对换;

其中 n 为正整数,则最后一行的语句频度是( )

A . O (n )

B . O(nlogn)

C .O(n 3)

D .O(n 2)

6. 设有两个串p 和q ,求q 在p 中首次出现的位置的运算称作()。

A . 连接

B . 模式匹配

C .求子串

D . 求串长

7. 设串s1=’ABCDEFG’,s2=’PQRST’,函数con (x,y)返回x 和y 串的连接串,subs(s,i,j)返回串s 的从序号i 的字符开始的j 个字符组成的子串,len(s)返

回串s 的长度,则con (subs (s1,2,len (s2)),subs (s1,len (s2),2))的结果串是()。

A. BCDEF

B. BCDEFG

C.BCPQRST

D. BCDEFEF

8. 对于栈操作数据的原则是( )。

A .先进先出

B .后进先出

C .后进后出

D .不分顺序

9. 设有三个元素X ,Y ,Z 顺序进栈(进的过程中允许出栈),下列得不到的出栈排列是( )。

A .XYZ

B . YZX

C . ZXY

D . ZYX

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

A.abcd*+- B. abc+*d- C. abc*+d- D. -+*abc

11.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是

()

A.p->next=s;s->next=p->next;

B.s->next=p->next;p->next=s;

C.p->next=s;p->next=s->next;

D.p->next=s->next;p->next=s;

12.栈和队列的共同点是()。

A. 都是先进先出

B. 都是先进后出

C. 只允许在端点处插入和删除元素

D. 没有共同点

13.假设以数组A[m]存放循环队列的元素,其头尾指针分别为front 和

rear,则当前队列中的元素个数为()。

A.(rear-front+m)%m B.rear-front+1

C.(front-rear+m)%m D.(rear-front)%m

14.下列关于串的叙述中,正确的是()

A.一个串的字符个数即该串的长度

B.一个串的长度至少是1

C.空串是由一个空格字符组成的串

D.两个串S1和S2若长度相同,则这两个串相等

15.串是一种特殊的线性表,其特殊性体现在()

A.可以顺序存储

B. 数据元素可以是结构体

C.数据元素是字符

D.可以链接存储

二。应用题(共 50分,每题10分)

1.数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,

抽象数据类型的主要特点是什么?使用抽象数据类型的主要好处是什么?

2.void CRE()

{ char x; node *head,*s; int n=0;

head=NULL;

x=getchar();

while(x!=‘#’)

{ s=(node *)malloc(sizeof(node));

s->data=x; s->next=head; head=s;

n++; x=getchar();}}

此程序段的功能:

3.按照下列题目中的算法功能说明,将算法描述片段中的错误改正过

来。

(1)下面的算法描述片段用于在双链表中删除指针变量p所指的结点(4分):

p->rlink=p->llink->rlink;

p->llink=p->rlink->llink

free(p);

(2)下面的算法描述片段用于在双链表中指针变量p所指结点后插入一个新结点(6分):

new(q);

q->llink=p;

p->rlink=q;

q->rlink=p->rlink;

q=p->rlink->llink;

4.用栈实现将中缀表达式8-(3+5)*(5-6/2)转换成后缀表达式,画出

栈的变化过程。

5.设目标为S=‘abcaabbcaaabababaabca’,模式为P=‘babab’,

(1)手工计算模式P的nextval数组的值;(5分)

(2)写出利用求得的nextval数组,按KMP算法对目标S进行模式匹配的过程。 (5分)

三.算法设计(20分)

1.设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算法:

(1)找出最小值结点,且打印该数值;

(2)若该数值是奇数,则将其与直接后继结点的数值交换;

(3)若该数值是偶数,则将其直接后继结点删除。

相关主题
相关文档
最新文档