完整版数据结构考试试题带答案.docx

上传人:b****2 文档编号:1392467 上传时间:2022-10-22 格式:DOCX 页数:15 大小:75.99KB
下载 相关 举报
完整版数据结构考试试题带答案.docx_第1页
第1页 / 共15页
完整版数据结构考试试题带答案.docx_第2页
第2页 / 共15页
完整版数据结构考试试题带答案.docx_第3页
第3页 / 共15页
完整版数据结构考试试题带答案.docx_第4页
第4页 / 共15页
完整版数据结构考试试题带答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

完整版数据结构考试试题带答案.docx

《完整版数据结构考试试题带答案.docx》由会员分享,可在线阅读,更多相关《完整版数据结构考试试题带答案.docx(15页珍藏版)》请在冰豆网上搜索。

完整版数据结构考试试题带答案.docx

完整版数据结构考试试题带答案

XX科技大学成都学院二零零八至二零零九学年第一学期数据结构课堂测试(60分钟)闭卷考试时间:

题号

-一一

-二二

-三

总分

评卷教师

分数

一•填空题(每空2分,共40分);

1.数据结构算法中,通常用时间复杂度和__空间复杂度两种方法衡量其效率。

2.下面程序段的时间复杂度为_0(n)。

(n>1)

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

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

x=x+1;

3.静态链表中指针表示的是一结点的地址。

4.线型表、栈和队列都是线型结构,可以在线型表的任意—位置

插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在

队尾―插入元素和队头除元素。

5.在具有n个单元的循环队列中,队满时共有n-1个元素。

6.在一个长度为n的顺序表中第i个元素(1<=i<=n)之前插入一个元素时,需向后移动_n-i+1_个元素。

7.在n个结点的单链表中要删除已知结点*p,需找到它的驱。

8.带有一个头结点的单链表head为空的条件是head->next=

=NULL。

9.在栈顶指针为hs的链栈中,判断栈空的条件是hs==NULL一。

10.在hq的链队列中,判定只有一个结点的条件是

_hq.front->next==hq.rear。

11.非空的循环单链表head的尾结点(由p指向),满足条件p->next==head。

12.两个串相等的充分必要条件是串长相等且对应字符相等。

13.空串是度为0的串其长度等于—0。

14.空格串是由空格字符组成的串,其长度等于空格的个数

表元编号

结点

表元间关系

1

a1

3

2

a2

1

3

a3

2

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

A.循环链表B•单链表C•双向循环链表D•双向链表

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

(B)

A.543612B.346521C.453126D.23415

6

若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是(B)。

A.top[2]-top[1]|=0B.top[1]+1=top[2]

C.top[1]+top[2]=mD.top[1]=top[2]

数组Q[n]用来表示一个循环队列,front为当前队列头元素的前一位置,rear为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为(D)

A.rear—frontB.(n+front—rear)%n

C.n+rear—frontD.(n+rear—front)%n

设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e6,e5,e3,e1则栈S的容量至少应该是(B)o

A.6B.4C.3D.2

判定一个循环队列QU最多元素为N)为空的条件是C

A.QU.front==(QU.rear+1)%NB.QU.front!

=(QU.rear+1)%N

C.QU.front==QU.rearD.QU.front!

=QU.rear

判定一个循环队列QU(最多元素为mQ为满队列的条件是Ao

A.QU.front==(QU.rear+1)%NB.QU.front!

=(QU.rear+1)%N

C.QU.front==QU.rearD.QU.front!

=QU.rea叶1

不带头结点的单链表head为空的判定条件是A

A.head=NULLB.head->next=NULLC.head->next=head

D.head!

=NULL

15.在双向链表指针p的结点前插入一个指针q的结点操作是(C)o

A.p->Llink=q;q->Rlink=p;p->Llink->Rlink=q;q->Llink=q;

B.p->Llink=q;p->Llink->Rlink=q;q->Rlink=p;q->Llink=p->Llink;

C.q->Rlink=p;q->Llink=p->Llink;p->Llink->Rlink=q;p->Llink=q;

D.q->Llink=p->Llink;q->Rlink=q;p->Llink=q;p->Llink=q;

16.从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,

需平均比较___D—结点。

A.nB.n/2C.(n—1)/2D.(n+1)/2

17.设串s1=‘ABCDEF',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))的结果串是D

A)BCDEFB)BCDEFGC)BCPQRSTD)BCDEFEF

三.综合题(每题6分,共30分)

1.线性表具有两种存储方式,即顺序方式和链接方式。

现有一个具有五个元素的线性表L={23,17,47,05,31},若它以单链表方式存储在下列100〜119号地址

空间中,每个结点由数据(占2个字节)和指针(占2个字节,由大写字母表示)组成,如下所示:

100120

47

p

23

q

05

r

31

s

17

t

其中指针p,q,r,s,t的值分别为多少?

该线性表的首结点起始地址为多少?

末结点的起始地址为多少?

(共6分)

2.答:

p=108q=116r=112s=0或

NULL

t=100首址=104末址=112。

3.如果想将输入的一个字符序列逆序输出,如输入“abcdef”,输出“fedcba”,请

分析用线性表、堆栈和队列等方式正确输出的可能性?

(共6分)

线性表是随机存储,可以实现,靠循环变量(j--)从表尾开始打印输出;堆栈是后进先出,也可以实现,靠正序入栈、逆序出栈即可;

队列是先进先出,不易实现。

4.写出删除顺序表中第i个元素的算法:

(共6分)

StatusListDelete_sq(SqList&L,inti,ElemType&e)

Statusdel_sqllist(SqList&L,inti,ElemType&e)

{

if(i<1IIi>L.length)returnERROR;

e=L.elem[i];

for(j=i+1;j<=L」ength;j++)

L.elem[j-1]=L.elem[j];

--L.length;

returnOK;

}

5.写出顺序栈的入栈算法(共6分)

StatusPush(SqStack&S,SelemTypee)

voidPush(Stack&S,ElemTypee)

{//在栈顶之上插入元素e为新的栈顶元素

p=newLNode;//建新的结点

if(!

p)exit

(1);//存储分配失败

p->data=e;

p->next=S.top;//链接到原来的栈顶

S.top=p;//移动栈顶指针

++S.length;//栈的长度增1

}//Push

6.写出链队列的出队列算法(共6分)

StatusDeQueue(LinkQueue&Q,QelemType&e)

StatusDeQueue(LinkQueue&Q,QElemType&e){

〃若队列不空,则删除Q的队头元素,

〃用e返回其值,并返回0K;否则返回ERROR

系别班次学号姓名

if(Q.front=

=Q.rear)returnERROR;

p=Q.front->next;e=p->data;

Q.front->next=p->next;

if(Q.rear=:

=p)Q.rear=Q.front;

free(p);

}

returnOK;

XX科技大学成都学院

2008~2009学年第一学期中期试题一一数据结构答案

一.填空题(每题2分,共40分);

题号

参考答案

1

空间复杂度

2

O(n2)

3

下一结点的地址

4

线型,任意,栈顶,队尾,队头

5

n-1

6

n-i+1

7

前驱

8

head->next==NULL

9

hs==NULL

10

hq.front->next==hq.rear

11

p->next==head

12

串长相等且对应字符相等

13

长度为0的串,0

14

由空格字符组成的串,空格的个数

 

•单项选择题(每题2分,共30分);

题号

1

2

3

4

5

6

7

8

9

10

答案

A

A

B

B

D

B

C

B

B

C

题号

11

12

13

14

15

答案

A

A

C

D

D

•综合题(共30分)

{

if(i<1IIi>L.length)returnERROR;

e=L.elem[i];

for(j=i+1;j<=L」ength;j++)

L.elem[j-1]=L.elem[j];

--L.length;

returnOK;

}

4.

voidPush(Stack&S,ElemTypee)

{//在栈顶之上插入元素e为新的栈顶元素

p=newLNode;//建新的结点

if(!

p)exit

(1);//存储分配失败

p->data=e;

p->next=S.top;//链接到原来的栈顶

S.top=p;//移动栈顶指针

++S.length;//栈的长度增1

}//Push

5.StatusDeQueue(LinkQueue&Q,QElemType&e){

〃若队列不空,则删除Q的队头元素,

〃用e返回其值,并返回0K;否则返回ERROR

if(Q.front==Q.rear)returnERROR;

p=Q.front->next;e=p->data;

Q.front->next=p->next;

if(Q.rear==p)Q.rear=Q.front;

free(p);returnOK;

}

全真模拟试题

(一)

一、单项选择题(在每小题的4个备选答案中,选出正

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1