数据结构(C语言)之线性表

《数据结构之线性表》

————<一分汗水,一分积累,一分收获,一分分享,一分快乐>

选择题

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

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

2.一个顺序表所占用的存储空间大小与     B    无关。

A.表的长度    B.元素的存放顺序    C.元素的类型    D.元素中各字段的类型

3.线性表的顺序存储结构是一种       A    

A.随机存取的存储方式    B.顺序存取的存储方式

C.索引存取的存储方式    D.Hash存取的存储方式

4.若线性表采用顺序存储结构,每个元素占用4个存储单元,第一个元素的存储地址为100,则第12个元素的存储地址是     B   

A.112    B.114    C.148    D.412

5.线性表是    A   

A.一个有限序列,可以为空     B.一个有限序列,不能为空

C.一个无限序列,可以为空     D.一个无限序列,不能为空

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

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

7.若长度为n的非空线性表采用顺序存储结构,删除表的第i个数据元素,首先需要移动表中   A    中数据元素。

A. n-i     B. n+i     C. n-i+1        D. n-i-1 

8.对于顺序存储的线性表,设其长度为n,在任何位置插入或删除操作都是等概率的。删除一个元素时平均要移动表中的    C   个元素。

A. n/2     B. (n+1)/2      C. (n-1)/2      D. n

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

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

10.线性表中各链接点之间的地址    C   

A.必须连续           B.部分地址必须连续

C.不一定连续        D.连续与否无所谓

11.在n个结点的线性表的数组表示中,算法的时间复杂度是0(1)的操作是    A    

A.访问第i个结点后插入一个新结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)

B.在第i个结点后插入一个新结点(1≤i≤n)

C.删除第i个结点(1≤i≤n)

D.以上都不对

12.单链表中,增加一个头结点的目的是为了   C   

A.使单链表至少有一个结点        B.标识表结点中首结点的位置

C.方便运算的实现                      D.说明单链表是线性表的链式存储

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

A. head==NULL               B. head->next==NULL

C. head->next==head        D. head !=NULL

14.将长度为n的单链表链接在长度为m的单链表后面的算法的时间复杂度采用大于0形式标识应该是    C   

A.0(1)       B.0(n)       C.0(m)      D.0(n+m)

15.静态链表中的指针地址表示的是    C  

A.下一个元素的地址                  B.内存储器的地址

C.下一个元素在数组中的位置    D.左链或右链指向的元素的地址

16.非空的循环单链表head的尾结点p满足    A   

A.P->link=head           B.P-link=NULL             C.P=NULL             D.P=head

17.某线性表用带头结点的循环单链表存储,头指针为head,当head->next->next==head成立时,线性表的长度是    B    

A.0         B.1         C.2         D.3

18.在什么情况下,应使用链式结构存储线性表L?    B   

A.需经常修改L中的结点值        B.需不断对L进行删除插入

C.需要经常查询L中的结点值           D.L中结点结构复杂

19.与单链表相比较,双向链表的优点之一是    D    

A.可以省略头结点指针               B.可以随机访问

C.插入、删除操作更简单           D.顺序访问相邻结点更灵活

20.某线性表长发生的操作作为删除第一数据元素和最后一个元素后添加新元素,采用  D   

作为存储结构,能使其存储效率和时间效率最高。

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

C.双向循环链表           D.仅用尾指针的循环单链表

21.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用

D   存储方式最节省运算时间

A.单链表        B.双链表        C.单循环链表        D.带头结点的双循环链表

22.对于一个线性表既要求能够进行较快的插入和删除,又要求存储结构能够反映数据之间的逻辑关系,则应用     C    

A.顺序方式存储    B.散列方式存储    C.链接方式存储    D.以上方式均可

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

A.顺序表        B.双链表        C.带头结点的双循环链表           D.单循环链表

24.若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为节省时间应采用的存储方式为    D   

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

25.下面哪一条是顺序存储结构的优点?     C    

A.插入运算方便           B.可方便地用于各种逻辑结构的存储表示

C.存储密度大               C.删除运算方便

26.下面关于线性表的叙述中,错误的是    B    

A.线性表采用顺序存储,必须占用一批连续的存储单元

B.线性表采用顺序存储,便于进行插入和删除的操作

C.线性表采用链接存储,不必占用一片连续的存储单元

D.线性表采用链接存储,便于插入和删除操作

27在非空线性链表中由p所指的链接点后面插入一个由q所指的链接点的过程是依次执行动作    B   

A.q->link=p;p->link=q; B.q-link=p->link;p->link=q; 

C.q->link=p->link;p=q; D.p->link=q;q->link=p;

28.在非空双向循环链表中由q所指的链接点前面插入一个由p指的链接点的过程依次是执行语句p->rlink=q;p->llink=q->llink;q->llink=p;         D        

A.q->rlink->llink=p;        B.q->llink->rlink=p; 

C.p->rlink->llink=p;        D.p->llink->rlink=p; 

29.在非空双向循环链表中由q所指的链接点后面插入一个由p指的链接点的动作依次为

     D    

A.p->llink=q ; p->rlink=q->rlink ; q->rlink=p ; q->rlink->llink=p;

B.p->rlink=q->rlink ; p->llink=q ; q->rlink ; q->rlink->llink=p;

C.p->llink=q ; p->rlink=q->rlink ; q->rlink=p ; p->llink->rlink=p;

D.p->llink=q ; p->rlink=q->rlink ; q->rlink=p ; p->rlink->llink=p;

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

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

B. p->llink=->llink->llink ; p->llink->rlink=p;

C. p->rlink->llink=p ; p->rlink=p->rlink->rlink;

D. p->rlink=p->llink->llink ; p->llink=p->rlink-rlink;

31.单链表的存储密度为     C     

A.大于1        B.等于5         C.小于1        D.不能确定

你可能感兴趣的:(C语言)