数据结构测验2

1.顺序表的优点是(   )。

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

A  顺序表的优点是:存储密度高、可以随机存取结点

2.关于线性表的叙述,以下错误的是(   )。

 

 

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

B  顺序表的缺点是不便于进行插入和删除操作

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

 

 

  • A、数据对象
  • B、字符
  • C、数据元素
  • D、数据项

C  

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

 

 

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

A  顺序表的优点就是可以随机存取结点

5.在单链表的结点p后面插入一个新的结点s,其算法的时间复杂度为(    )。

 

 

  • A、O(1)
  • B、O(i)
  • C、O(n)
  • D、O(logn)

A  时间复杂度跟n无关,为O(1)

6.链表具有(    )特点。

 

 

  • A、插入运算需要移动元素
  • B、可随机访问元素
  • C、存储空间不需要连续
  • D、删除运算需要移动元素

C  

7.在长度为n的顺序表的第i(1≤i≤n+1)个位置插入一个新元素的算法的时间复杂度为(   )。

 

 

  • A、O(i)
  • B、O(1)
  • C、O(n)
  • D、O()

C  要进行n次,所以时间复杂度为O(n)

8.对于长度为n的顺序表,访问第i(1≤i≤n)个元素的算法时间复杂度为(      )。

 

 

  • A、O(n)
  • B、O(1)
  • C、O(i)  
  • D、O(2n) 

B  因为顺序表可以直接L.elem[i]直接访问,所以时间复杂度为O(1)

9.对于长度为n的单链表,访问第i(1≤i≤n)个结点的时间复杂度为(   )。

 

 

  • A、O(i)
  • B、O(1)
  • C、O(n)
  • D、O(i-1)

C  因为链表无法直接访问,要设置一个循环L=L->next挨个寻找,所以最坏情况下时间复杂度就为O(n)

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

 

 

  • A、head==NULL
  • B、head->next==NULL
  • C、head->next==head
  • D、head!=NULL

B

11.在循环单链表head中,判断p为尾结点的条件是(      )。

 

 

  • A、p->next==head
  • B、p->next==NULL
  • C、p==NULL
  • D、p==head

A

12.对如图所示的单链表,如要在结点p之后插入结点s,正确的语句序列是(     )。

11.png

 

 

  • 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;

B

13.对如图所示的双向链表,要在p结点后面插入s结点,正确的语句序列是(       )。

2.png

 

 

  • A、p->next=s ;

    s->prior=p; 

    p->next->prior=s ; 

    s->next=p->next;

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

    p->next=s;

    s->prior=p;

    s->next=p->next;

  • C、s->prior=p; 

    s->next=p->next; 

    p->next=s; 

    p->next->prior=s ;

  • D、s->next=p->next; 

    p->next->prior=s  ; 

    s->prior=p;  

    p->next=s;

D

14.对如图所示的双向链表,若要删除结点p,正确的语句序列是(      )。

4.png

 

 

  • A、p->prior->next=p->next;     

    p->next->prior=p->prior;

  • B、p->prior=p->prior->prior ;    

    p->prior->next=p;

  • C、p->next->prior=p;           

    p->next=p->next->next;

  • D、p->next=p->prior->prior;      

    p->prior=p->next->next;

A

15.对如图所示的双向链表,要在p结点前面插入s结点,正确的语句序列是(       )。

3.png

 

 

  • A、s->prior=p->prior ; 

    p->prior->next=s  ;

    s->next=p  ;

    p->prior=s ;

  • B、p->prior=s ;

    s->prior=p->prior ; 

    p->prior->next=s  ;

    s->next=p  ;

  • C、s->prior=p->prior ; 

    p->prior=s ;

    p->prior->next=s  ;

    s->next=p  ;

  • D、s->prior=p->prior ; 

    p->prior->next=s  ;

    s->next=p->next  ;

    p->prior->next=s ;

A

16.链表中的头结点仅起到标识的作用

F  头结点的作用是:为了使插入和删除操作统一,在插入和删除第一个结点时不需另作判断;无论链表是否为空,头指针始终指向头结点

17.顺序存储结构的主要缺点是不利于插入或删除操作

T

18.线性表采用链式存储结构时,结点之间的存储空间可以是不连续的

T

19.顺序表的插入和删除运算的效率太低,因此它不如链表好

F  在顺序存储方式中如果元素的插入或者删除不牵扯到元素的移动的话,链式的优势体现不出来。另外,在链式存储中,元素的存取机制是顺序;顺序存储中,元素的存取机制是随机的。从元素访问方面来讲,要想访问某个位置的元素时,在顺序存储要比链式存储好很多,在顺序存储可以直接访问,链式存储则需要从链头开始访问,一直到目标点

20.线性表的特点是每个元素都有一个直接前驱和一个直接后继

F  第一个元素没有直接前驱,而最后一个元素没有直接后继

21.在长度为n的单链表中取第i(1≤i≤n)个元素的时间和i的值无关

F  单链表要设置循环,通过L=L->next来找到i点,所以与i的值有关

22.顺序表就是顺序存储的线性表

T

23.双向链表的主要优点是可以方便地插入和删除元

T

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

T

25.在单链表中设置头结点的作用主要是使插入和删除等操作统一。另外,不论链表是否为空,链表指针始终指向头结点

T

26.链表是利用物理位置的相邻来表示数据元素之间的逻辑关系

F  顺序存储的线性表存储特点是用物理位置的相邻表示元素之间的关系的。链接存储的特点是用指针来表示相邻元素之间的关系的。

27.循环单链表的最大优点是从任一结点出发都可访问到链表中每一个元素

T

28.带头结点的双向循环链表L为空表的条件是(L->next= =L && L->prior= =L)

T

posted @ 2020-10-24 21:20  ....陈陈陈陈  阅读(1071)  评论(0)    收藏  举报