数据结构复习(一)

一、单项选择题

(      ) 1. 数据的四种基本逻辑结构是指。

  A. 链表、数组、串、图状结构

  B. 线性表、链表、栈队列、数组

  C. 线性结构、链表、树形结构、图形结构

  D. 集合、线性结构、树形结构、图状结构

(      ) 2 .评价算法的时间复杂性,比较“对数阶量级”与“线性阶量级”,则有。

 A .  对数阶量级复杂性大于线性阶量级

 B .  对数阶量级复杂性小于线性阶量级

 C .  对数阶量级复杂性等于线性阶量级

 D .  两者之间无法比较 

(      ) 3.下面程序段的时间复杂度为 。

    for(int i=0; i<m; i++)

      for(int j=0; j<n; j++)

               a[i][j]=i*j;

     A. O(m2)           B. O(n2) 

         C. O(m*n)           D. O(m+n)

(      ) 4. 评价排序算法好坏的标准主要是。  
  A.执行时间      B.辅助空间
  C.算法本身的复杂度

  D.时间复杂度和空间复杂度

(      ) 5. 在一个单链表中,若要删除由指针q 所指向结点的后继结点,则执行。

      A.p = q->next ;  p->next = q->next;

     B.p = q->next ;  q->next = p;

      C.p = q->next ;  q->next = p->next;

      D.q->next = q->next->next;  q->next = q;

(      ) 6. 链表不具有的特点是。
    A.不必事先估计存储空间

    B.插入删除不需要移动元素

      C.可随机访问任一元素

      D.所需空间与线性表长度成正比

(      ) 7. 在单链表中的结点 *p 之后插入一个结点 *s,应执行的语句是。

  A.s->next=p->next;     p->next=s;

  B.p->next=s;     s->next=p->next;

  C.p->next=s->next;    s->next=p;

  D.s->next=p;    p->next=s->next;

(      ) 8. 栈和队列都是。

  A.链式存储的线性结构

        B.顺序存储的线性结构

  C.限制存取位置的线性结构

    D.限制存取位置的非线性结构

(       ) 9.设一个栈的输入序列为A、B、C、D,则借助一个栈所能得到的输出序列不可能是。
  A.ABCD    B.DCBA

  C.ACDB   D.DABC

(       ) 10.在下列哪种运算中,使用顺序表比链表好。  
  A.插入        B.删除

  C.根据序号查找    D.根据元素值查找

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

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

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

 (       ) 12.在需要经常查找结点的前驱与后继的场合中,比较合适的是使用。
    A.单链表           B.双链表

       C.队列            D.循环链表

(       ) 13.关于串的叙述中,正确的是(     )

  A.空串是含有零个字符或含有空格字符的串

  B.   空串是只含有空格字符的串

  C.   串是含有一个或多个字符的有穷序列

  D.   空串是只含有零个字符的串

 (       ) 14.若一个串非空,子串的定位操作通常称为。

  A. 串的长度    B.原串的子串

  C.串的模式匹配    D.串的连接

(      ) 16. 设h是指向带头结点的循环链表的头指针,p是辅助指针。执行下述程序段后

p=h;

while (p->next->next!=h)

         p=p->next;

  p->next=h;

  A.   p->next 指针指向链尾结点

  B.   h 指向链尾结点

  C.  删除链尾前面的结点

  D.  删除链尾结点 

二、填空题

1.在链表中进行插入和__删除______操作的效率比在顺序存储结构中进行相同操作的效率高。

2.在一个长度为n的顺序表中删除第i个元素,要移动__n-i_______个元素。

3. 在空串和空格串中,长度不为0的是___空格串______

4. 某非空双链表,结点中的指针域为 prior next。若要删除指针q所指向的结点,则需执行下述语句段:

    q -> prior -> next q->next ;

 ___q->next->prior=q->prior;____________________________

5. head 表示循环链表的头指针,t 表示尾结点,则头指针 head 与 尾结点 之间的关系可表示为___t->next=head;______________

7. 设指针head指向不带头结点的单链表,指针p指向一个新结点。现要将指针p指向的结点插入表中,使之成为第一个结点,则所需的操作为:

   p→next=head;  和___head=p;____________

posted @ 2013-12-26 16:04  yuanqi  阅读(608)  评论(0编辑  收藏  举报