当前位置:文档之家› 数据结构-线性表-习题

数据结构-线性表-习题

线性表一、选择题1.线性表是( A )A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空2.一维数组与线性表的特征是( C )。

A.前者长度固定,后者长度可变B.两者长度均固定C.后者长度固定,前者长度可变D.两者长度均可变3.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是( B ).A.当前结点所在地址域B.指针域C.空指针域D.空闲域4.用链表表示线性表的优点是( B )。

A.便于随机存取B.便于进行插入和删除操作C.占用的存储空间较顺序表少D.元素的物理顺序与逻辑顺序相同5.在具有 n 个结点的单链表中,实现__A _的操作,其算法的时间复杂度都是O(n)。

A.遍历链表和求链表的第i个结点B.在地址为P的结点之后插入一个结点C.删除开始结点D.删除地址为P的结点的后继结点6.下面关于线性表的叙述中,错误的是( B )。

A.线性表采用顺序存储必须占用一片连续的存储单元B.线性表采用顺序存储便于进行插入和删除操作C.线性表采用链式存储不必占用一片连续的存储单元D.线性表采用链式存储便于进行插入和删除操作7.已知单链表的每个结点包括一个指针域next,它指向该结点的后继结点。

现要将指针 q 指向的新结点插入到指针 p 指向的结点之后,下面的操作序列中正确的是( C )。

A . q = p->next; p->next = q->next ;B . p->next = q->next; q = p->next ;C . q->next = p->next; p->next = q ;D . p->next = q; q->next = p->next ;8.设 al ,a2, a3为三个结点; p , 10 , 20 代表地址,则如下的链表存储结构称为( B )。

A.链表B.单链表C.双向循环链表D.双向链表9.单链表的存储密度( C )。

A.大于 1 B.等于1 C.小于1 D.不能确定10.己知一个顺序存储的线性表,设每个结点需占 m 个存储单元,若第一个结点的地址al ,则第i个结点的地址为( A )。

A. al+(i-1)*mB. al+i*mC. al-i*mD. al+(i+1)*m11.在 n 个结点的顺序表中,算法的时间复杂度是 O(l)的操作是( A )。

A.访问第i个结点(1≤i≤n)和求第 i 个结点的直接前驱(2≤i≤n)B.在第 i 个结点之后插入一个新结点(1≤i≤n-1)C.删除第 i 个结点( 1≤i≤n )D.将 n 个结点从小到大排序12.在线性表中( B )只有一个直接前驱和一个直接后继。

A.首元素B.中间元素C.尾元素D.所有元素13.对具有 n 个结点的线性表进行查找运算,所需的算法时间复杂度为( D )。

A. 0 (n2)B. 0 (nlog2n) C. O (log2n) D. O (n)14.线性表采用顺序存储的缺点是( D )。

A.存储密度降低B.只能顺序访问C.元素的逻辑顺序与物理顺序不一致D.插入、删除操作效率低15.以下链表结构中,从当前结点出发能够访问到任一结点的是( B )。

A.单向链表和双向链表B.双向链表和循环链表C.单向链表和循环链表D.单向链表、双向链表和循环链表16.线性表是具有 n 个( B )的有限序列。

A.数据项B.数据元素C.表元素D.字符17.若长度为 n 的线性表采用链式存储结构,访问其第 i 个元素的算法时间复杂度为( B )。

A. 0 ( l )B. 0 ( n )C. 0 ( n2 )D. 0 ( log2n )18.指针 P 指向循环链表 L 的首元素的条件是( A )。

A. P==LB. L->next==PC.P->next= =NULLD. P->next==L19.指针 P 所指的元素是双循环链表 L 的尾元素的条件是( D )。

A. P==LB. P->prior==LC. P==NULLD. P->next==L20.不带头结点的单链表L为空的条件是( C )A. L!=NULLB. L==NULLC. L->next==NULLD. L->next==L21.带头结点的单链表L为空的条件是( D )A. L!=NULLB. L==NULLC. L->next==NULLD. L->next==L22.两个指针 P 和 Q ,分别指向单链表的两个元素, P 所指元素是 Q 所指元素前驱的条件是( B )。

A. P->next==Q->nextB. P->next==QC. Q->next==PD. P==Q23.在长度为 n 的顺序表中,若要删除第 i (1≤i≤n )个元素,则需要向前移动元素的次数为( B )。

A. 1B. n一iC. n一i+1D. n一i一l24.在长度为 n 的顺序表中第 i (1≤i≤n)个位置上插入一个元素时,为留出插入位置所需移动元素的次数为( C )。

A. n-iB. iC. n–i+1D. n-i-l25.假定己建立以下动态链表结构,且指针 Pl 和 P2 已指向如图所示的结点:则以下可以将 P2 所指结点从链表中删除并释放该结点的语句组是( C )A. pl->next=p2->next; free (pl);B. pl=p2; free (p2);C. pl->next=p2->next;free (p2);D. pl=p2->next; free (p2);26.若已建立如图所示的单向链表,则以下不能将 s 所指的结点插入到链表尾部,构成新的单向链表的语句组是( D )。

A . s->next = a->next->next ; a->next->next = s ;B . a = a->next; a->next =s ; s->next = NULL ;C . s->next = NULL ; a = a->next; a->next = s ;D . a = a->next ; s->next = a->next ; a->next = s->next ;27.有如下函数,其中形参 hl 和 h2 分别指向 2 个不同链表的第一个结点,此函数的功能是( A )。

Void fun( struct node * hl , struct node * h2 ){struct node * t ;t = hl ;while ( t->next ! ='\0' )t = t->next ; t->next = h2 ;}A.将链表 h2 接到链表 h1 后B.将链表 h1 接到链表 h2 后C.找到链表 hl 的最后一个结点由指针返回D.将链表 hl 拆分成两个链表二、判断题1.循环链表不是线性表. ( )2.线性表就是顺序存储的表。

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

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

( )5.线性表的链式存储结构优于顺序存储。

( )6.顺序存储的线性表可以实现随机存取。

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

( )8.链表的每个结点都恰好包含一个指针域。

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

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

( )11.取线性表的第i个元素的时间同i的大小有关. ( )12.顺序存储结构的主要缺点是不利于插入或删除操作。

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

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

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

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

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

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

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

( )20.线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素。

( )21.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定相邻。

( )22.在线性表的顺序结构中,插入和删除元素时,移动元素的个数与该元素的位置有关。

( )23.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此单链表是随机存取的存储结构。

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

( )25.在单链表中,任何两个元素的存储位置之间都有固定的联系,所以可以从头结点开始查找任何一个元素。

( )26.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。

( )。

相关主题