数据结构 习题

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

绪论和线性表习题

一、选择题

1.在一个单链表中,若p↑结点不是最后结点,在p↑之后插入s↑结点,则实行( )。

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

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

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

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

2.与单链表相比,双链表优点之一( ).

A.插入删除操作更简单.

B.可随机访问

C.可省略表头指针和表尾指针 D、顺序访问相临结点更灵活

3.在长度为n的顺序表的第i(1≤i≤n+1)个位置上插入一个元素,元素的移动次数为( )

A、 n-i+1 B.n-i

C.i

D.i-1

4.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )

A.顺序表

B.用头指针表示的单循环链表

C、用尾指针表示的单循环链表 D.单链表

5.在需要经常查找结点的前驱与后继的场合中,使用( )比较合适。

A.单链表B、双链表 C.顺序表 D.循环链

6.下面关于线性表的叙述中,错误的为( )

A.顺序表使用一维数组实现的线性表

B.顺序表必须占用一片连续的存储单元

C.顺序表的空间利用率高于链表

D、在链表中,每个结点只有一个链域

7.带头结点head的单链表为空的判断条件是( )

A. head=NUIL B、head->next=NUIL

C. head->next=head

D. head!=NUIL

8.线性表通常采用两种存储结构是( )

A、顺序存储结构和链式存储结构

B.散列方式和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构

9.线性表采用链式存储时,结点的存储地址()

A.必须是不连续的

B、连续与否均可

C.必须是连续的

D.和头结点的存储地址相连续

10.将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为()

A.O(1) B.O(n) C、 O(m) D.O(m+n)

11、在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是( )

A.p=p->next;B、 p->next=p->next->next;

C.p->next=p;

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

12.在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next=head,则( )

A.p指向头结点

B.p指向尾结点

C.*p的直接后继是头结点 D、 *P的直接后继是尾

13.为了最快地对线性结构的数据进行某数据元素的读取操作,则其数据存储结构宜采用( )方式。

A、顺序存储 B.链式存储

C.索引存储

D.散列存储

答案:1-5 BDACB 6-10 DBABC 11-13 BDA

二、判断题(判断下列各小题,正确的在题后括号内打“√”,

错的打“╳”。)

1、单链表中的头结点就是单链表的第一个结点。( ╳)

2、所谓数据的逻辑结构指的是数据元素之间的逻辑关系。(√)

3、在线性结构中,每个结点都有一个直接前驱和一个直接后继。

( ╳)

三、填空题

1、在单链表中设置头结点的作用_ 。

2、.设head为带有头结点的单链表的头指针,则判断单链表为空的条件是:_________。

3、.带头结点的循环链表L为空表的条件是_ _ __。带头结点的双循环链表L为空表的条件是_ 。

4、在如图所示的链表中,若在指针p所指的结点之后插入数据域值相继为a和b的两个结点,则可用下列两个语句实现该操作,它们依次是_ ______和_______。

5、.通常单链表的头结点指的是_ _______;单链表的首结点指的是__ ______。

6、在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head可用p表示为。

7、从顺序表中删除一个元素时,表中所有在被删元素之后的元素均需____ ________一个位置。

1、简化插入删除算法.

2、head->next= =NULL_____。

3、L->next=L ___。L->next=L->prior=L

4、__s->next->next=p->next______和_p->next=s_______。

5、_在单链表第一个结点之前增设的一个类型相同的结点_______;__表结点中的第一个结点______。

6、p->next->next=head 。

7、__向前移动__

四、算法阅读题

1、阅读下面的算法

LinkList mynote(LinkList L)

{//L是不带头结点的单链表的头指针

if(L&&L->next){

q=L;L=L->next;p=L;

S1: while(p->next) p=p->next;

S2: p->next=q;q->next=NULL;

}

return L;

}

请回答下列问题:

(1)说明语句S1的功能;

(2)说明语句组S2的功能;

相关文档
最新文档