数据结构章习题及答案Word下载.docx

上传人:b****3 文档编号:14771722 上传时间:2022-10-24 格式:DOCX 页数:16 大小:28.08KB
下载 相关 举报
数据结构章习题及答案Word下载.docx_第1页
第1页 / 共16页
数据结构章习题及答案Word下载.docx_第2页
第2页 / 共16页
数据结构章习题及答案Word下载.docx_第3页
第3页 / 共16页
数据结构章习题及答案Word下载.docx_第4页
第4页 / 共16页
数据结构章习题及答案Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据结构章习题及答案Word下载.docx

《数据结构章习题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构章习题及答案Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

数据结构章习题及答案Word下载.docx

D.线性表在顺序存储时,查找第i个元素的时间同i的值无关

11.线性表的表元存储方式有(

(1))和链接两种。

试指出下列各表中使用的是何种存储方式:

表1是(

(2))存储方式;

表2是((3))存储方式;

表3是((4))存储方式;

表4是((5))存储方式。

表左的s指向起始表元。

供选择的答案:

A.连续 

B.单向链接 

C.双向链接 

D.不连接 

E.循环链接

F.树状 

G.网状 

H.随机 

I.顺序 

J.顺序循环

【上海海运学院1995二、1(5分)】

12.

(1)静态链表既有顺序存储的优点,又有动态链表的优点。

所以,它存取表中第i个元素的时间与i无关。

(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。

(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。

以上错误的是( 

【南京理工大学2000一、3(1.5分)】

A.

(1),

(2) 

B.

(1) 

C.

(1),

(2),(3) 

D.

(2)

13.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为( 

)(1Rlink=p;

p->

Llink->

Rlink=q;

q->

Llink=q;

B. 

p->

Llink=q;

Rlink=p;

Llink=p->

Llink;

C. 

q->

D. 

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

( 

)。

A.p->

next=s;

s->

next=p->

next;

B.s->

C.p->

next=s->

D.p->

【青岛大学2001五、3(2分)】

25.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( 

A.head==NULL 

B.head→next==NULL 

C.head→next==head 

D.head!

=NULL

【北京工商大学2001一、5(3分)】

26.在双向链表存储结构中,删除p所指的结点时须修改指针( 

A.(p^.llink)^.rlink:

=p^.rlink 

 

(p^.rlink)^.llink:

=p^.llink;

B.p^.llink:

=(p^.llink)^.llink 

(p^.llink)^.rlink:

=p;

C.(p^.rlink)^.llink:

=p 

p^.rlink:

=(p^.rlink)^.rlink

D.p^.rlink:

p^.llink:

=(p^.rlink)^.rlink;

【西安电子科技大学1998一、1(2分)】

27.双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链表中的一个结点,现要求删去p所指结点,则正确的删除是( 

)(链中结点数大于2,p不是第一个结点)

A.p^.llink^.rlink:

p^.llink^.rlink:

=p^.rlink;

dispose(p);

B.dispose(p);

p^.llink^,rlink:

C.p^.llink^.rlink:

D.以上A,B,C都不对。

【南京理工大学1997一、1(2分)】

二、判断

1.链表中的头结点仅起到标识的作用。

【南京航空航天大学1997一、1(1分)】

2.顺序存储结构的主要缺点是不利于插入或删除操作。

【南京航空航天大学1997一、2(1分)】

3.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。

【北京邮电大学1998 

一、2(2分)】

4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。

【北京邮电大学2002一、2(1分)】

5.对任何数据结构链式存储结构一定优于顺序存储结构。

( 

【南京航空航天大学1997一、3(1分)】

6.顺序存储方式只能用于存储线性结构。

【中科院软件所1999六、1-2(2分)】【上海海运学院1997一、1(1分)】

7.集合与线性表的区别在于是否按关键字排序。

【大连海事大学2001一、5(1分)】

8.所谓静态链表就是一直不发生变化的链表。

【合肥工业大学2000二、1(1分)】

9.线性表的特点是每个元素都有一个前驱和一个后继。

【合肥工业大学2001二、1(1分)】

10.取线性表的第i个元素的时间同i的大小有关.( 

【南京理工大学1997二、9(2分)】

11.循环链表不是线性表.( 

【南京理工大学1998二、1(2分)】

12.线性表只能用顺序存储结构实现。

【青岛大学2001四、2(1分)】

13.线性表就是顺序存储的表。

【青岛大学2002一、1(1分)】

14.为了很方便的插入和删除数据,可以使用双向链表存放数据。

【上海海运学院1995一、1(1分)】 

【上海海运学院1997一、2(1分)】

15.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

【上海海运学院1996一、1(1分)】 

【上海海运学院1999一、1(1分)】

16.链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。

( 

) 

【上海海运学院1998一、2(1分)】

三、填空

1.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_______存储结构。

【北方交通大学2001二、4】

2.线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是________。

【北方交通大学2001二、9】

3.设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指向data为y的新结点,若将结点y插入结点x之后,则需要执行以下语句:

_______;

______;

【华中理工大学2000一、4(2分)】

4.在一个长度为n的顺序表中第i个元素(11DOBEGINp:

=p^.link;

i:

=i-1 

END;

(D)___;

WHILE 

jp^.pre^.freq 

DO 

p:

=p^.pre;

IF 

pq 

THEN 

[(3)______]

];

IF(4)_THEN[q^.next:

=p,q^.pre;

p^.pre^.next:

=q;

p^.pre:

=q]

return(q);

END;

【北京工业大学1999五(12分)】

29.循环链表a和b的结点值为字母,其中a表非递减有序,下面的程序欲构造一个递增有序的循环链表c,其中结点的值为同时在a,b两链表中出现的字母,且c中字母不重复,请补上程序中空缺的部分,并估计算法的时间复杂度。

(设a,b的结点数分别为m,n)

TYPE

link=^node;

node=RECORD

key:

char;

next:

link

PROC 

jj(a,b:

link;

VAR 

c:

link);

p,q,r,s:

BEGIN

new(c);

c^.next:

=c;

q:

=a;

=a^.next;

WHILE 

paDO

[

(1)___;

p^.key=p^.next^.key 

[q:

p=p^.next];

{跳过相同字母}

r:

=b^.next;

(2)_____;

r^.keyp^.keyDOr:

=r^.next;

rb 

THEN

[s:

q^.next:

=p^.next;

(3) 

;

s^.next:

=c^.next;

c^.next:

=s;

=s]

ELSE[q:

=p^.next]

];

=c^.next;

         

算法时间复杂度为O(4)___ 

【北京工业大学2000四(15分)】

30.以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。

voidreverse(pointerh)

/*h为附加头结点指针;

类型pointer同算法设计第3题*/

{pointerp,q;

p=h->

h->

next=NULL;

while(

(1)________)

{q=p;

p=p->

next=h->

next=

(2)________;

}

}【西南交通大学2000一、9】

31.下面是用c语言编写的对不带头结点的单链表进行就地逆置的算法,该算法用L返回逆置后的链表的头指针,试在空缺处填入适当的语句。

void 

reverse(linklist&

L){

p=null;

q=L;

while(q!

=null)

{

(1) 

next=p;

p=q;

(2)___ 

;

}

(3)_____;

}【北京理工大学2001九、1(6分)】

32.下面程序段是逆转单向循环链表的方法,p0是原链表头指针,逆转后链表头指针仍为p0。

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

当前位置:首页 > 工程科技 > 机械仪表

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

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