zoukankan      html  css  js  c++  java
  • 数据结构复习(一)

    一、单项选择题

    (      ) 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;____________

  • 相关阅读:
    [转][LeetCode]Longest Common Prefix ——求字符串的最长公共前缀
    [转]最长回文子串——4种解法
    [转]通过金矿模型介绍动态规划
    一句话说清楚什么是闭包函数
    [转]as3事件流机制彻底理解
    Eclipse 快捷键
    文件打包与解压缩
    第5节 环境变量与文件查找
    vim的多标签
    java思维导图
  • 原文地址:https://www.cnblogs.com/yuanqi/p/3492602.html
Copyright © 2011-2022 走看看