数据结构第2章线性表

2019-08-20 19:26

第2章 线性表

一 选择题

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

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

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

A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。 D.线性表采用链接存储,便于插入和删除操作。 3.线性表是具有n个( )的有限序列(n>0)。

A.表元素 B.字符 C.数据元素 D.数据项

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

A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表 5. 链表不具有的特点是( )

A.插入、删除不需要移动元素 B.可随机访问任一元素 C.不必事先估计存储空间 D.所需空间与线性长度成正比

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

2

A. O(0) B. O(1) C. O(n) D. O(n)

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

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位置元素的时间复杂性为( )

A.O(i) B.O(1) C.O(n) D.O(i-1) 9.在单链表指针为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;

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

A.head==NULL B.head→next==NULL C.head→next==head D.head!=NULL 二、判断题

1. 线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。( ) 2.对任何数据结构链式存储结构一定优于顺序存储结构。( ) 3.集合与线性表的区别在于是否按关键字排序。( )

4. 线性表的特点是每个元素都有一个前驱和一个后继。( ) 5. 循环链表不是线性表. ( ) 6. 线性表就是顺序存储的表。( ) 三、填空题

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

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

1

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

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

5. 顺序存储结构是通过________表示元素之间的关系的;链式存储结构是通过________表示元素之间的关系的。

6. 已知指针p指向单链表L中的某结点,则删除其后继结点的语句是:________ 7. 在单链表L中,指针p所指结点有后继结点的条件是:__ 。 8. 在单链表p结点之后插入s结点的操作是:_______。 四、应用题

1.线性表有两种存储结构:一是顺序表,二是链表。试问:

(1)如果有 n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构? 为什么?

(2)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?为什么?

2.线性表的顺序存储结构具有三个弱点:其一,在作插入或删除操作时,需移动大量元素;其二,由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其三,表的容量难以扩充。线性表的链式存储结构是否一定都能够克服上述三个弱点,试讨论之。 3.线性表(a1,a2,…,an)用顺序映射表示时,ai和ai+1(1<=i

4. 设单链表结点指针域为next,试写出删除链表中指针p所指结点的直接后继的C语言语句。

五、算法设计题

1.假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。

2.已知非空线性链表由list指出,链结点的构造为(data,next).请写一算法,将链表中数据域值最小的那个链结点移到链表的最前面。要求:不得额外申请新的链结点。

3.设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算法: (1)找出最小值结点,且打印该数值;

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

2


数据结构第2章线性表.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Red Hat Enterprise Linux 5 Qt安装配置详细步骤

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: