数据结构第二章测试题chap2 下载本文

内容发布更新时间 : 2024/5/17 10:39:56星期一 下面是文章的全部内容请认真阅读。

Chap2

一、选择题

1.下述哪一条是顺序存储结构的优点?(A)

A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示

注:顺序结构的插入、删除运算都不方便,而D明显错误

2.下面关于线性表的叙述中,错误的是哪一个?(B)

A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。 D.线性表采用链接存储,便于插入和删除操作。 注:概念题,顺序存储不便于进行插入和删除操作

3.线性表是具有n个(C)的有限序列(n>0)。

A.表元素 B.字符 C.数据元素 D.数据项 E.信息项 注:概念题

4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(A)存储方式最节省时间。

A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表 注:存取任一指定序号的元素即随机存取(顺序表的优点之一),在最后进行插入和删除运算的话那么顺序表和链表的时间复杂度相同,所以选A

5.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用(D)存储方式最节省运算时间。

A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表 注:在最后一个结点之后插入一个结点或删除最后一个结点,只有带头结点的双循环链表的时间复杂度最低

6. 链表不具有的特点是(B)

A.插入、删除不需要移动元素 B.可随机访问任一元素 C.不必事先估计存储空间 D.所需空间与线性长度成正比 注:B选项为顺序表的优点

7. 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度分别为(C)。

A.O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1) 注:概念题

8.线性表( a1,a2,?,an)以链接方式存储时,访问第i位置元素的时间复杂性为(C)

A.O(i) B.O(1) C.O(n) D.O(i-1) 注:访问第i位置元素的期望值为(n-1)\\2,所以时间复杂度为O(n)

9.非空的循环单链表head的尾结点P满足(A)。

A.P->link=head B.P->link= NULL C.P=NULL D.P=head 注:概念题 10.在双向循环链表中,在p指针所指向的结点前插入一个指针q所指向的新结点,其修改指针的操作是(C)。

注:双向链表的结点结构为(llink,data,rlink)。 供选择的答案:

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=p; p->llink=q;p->llink=q; 注:概念题,p->llink=q;必须是最后的语句

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

A.p->llink=( p->llink) ->llink; ( p->llink) ->rlink=p;

B.( p->llink) ->rlink = p->rlink; ( p->rlink) ->llink= p->llink; C.( p->llink) ->rlink=p;p->rlink= ( p->rlink) -> llink;

D. p->rlink=( p->rlink) -> llink; p->llink =( p->rlink) -> rlink; 注:概念题

二、判断题

1. 链表中的头结点仅起到标识的作用。(×) 注:还能便于对首元素的操作

2. 顺序存储结构的主要缺点是不利于插入或删除操作。(√) 注:概念题

3.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。(√) 注:概念题

4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。(×) 注:这两种存储方式各有优缺点

5. 对任何数据结构链式存储结构一定优于顺序存储结构。(×) 注:不一定

6.顺序存储方式只能用于存储线性结构。(×) 注:还能存储数组等等

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

注:除了第一个元素(只有一个后继)和最后一个元素(只有一个前驱)以外

8. 取线性表的第i个元素的时间同i的大小有关. (×) 注:时间与线性表的存储方式有关

9. 循环链表不是线性表. (×) 注:概念题

10. 线性表只能用顺序存储结构实现。(×) 注:还有链式存储

11. 线性表就是顺序存储的表。(×)

注:概念题,线性表是n个数据元素的有限序列

12. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。(×) 注:顺序存储方式插入、删除运算效率低

13. 链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。(√) 注:概念题

三、填空题

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

注:题目要求的存储方式能随机存取,并且很少进行插入和删除操作,故采用顺序存储

2.线性表L=(a1,a2,?,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是(n-1)/2。 注:期望值为(n-1)/2

3.设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指向data为y的新结点 , 若将结点y插入结点x之后,则需要执行以下语句:py->next=px->next;px->next=py; 注:链表存储算法应用题

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

注:即i以及i之后的元素都要向后移动一位

5.对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为 O(1),在给定值为x的结点后插入一个新结点的时间复杂度为O(n)。

注:链式存储插入和删除操作的时间复杂度都是O(1),但是后半句“在给定值为x的结点后插入一个新结点”即要先在链表中查找值为x的结点,故时间复杂度为O(n)

6.链接存储的特点是利用指针来表示数据元素之间的逻辑关系。 注:概念题

7. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共 4个,单链表为2个。 注:概念题