作业辅导网

标题: 抽象数据类型的三个组成部分分别为 [打印本页]

作者: 李老师    时间: 2017-5-23 22:18
标题: 抽象数据类型的三个组成部分分别为
东 北 大 学 继 续 教 育 学 院

  数据结构II            试 卷(作业考核 线上)  B 卷

学习中心:            院校学号:             姓名            

(共        页)         
总分        题号        一        二        三        四        五        六        七
        得分                                                       

一、单选题(每小题2分,共10小题,20分)
[  ] 1.抽象数据类型的三个组成部分分别为
     A.数据对象、数据关系和基本操作
     B.数据元素、逻辑结构和存储结构
     C.数据项、数据元素和数据类型
     D.数据元素、数据结构和数据类型
[  ] 2.下列各式中,按增长率由小至大的顺序正确排列的是
     A. ,n!,2n ,n3/2                                        B.n3/2,2n,nlogn,2100
     C.2n,log n,nlogn,n3/2                                   D.2100,logn, 2n, nn
[  ] 3. 已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为
     A. q->next=s->next;s->next=p;        B. s->next=p;q->next=s->next;
     C. p->next=s->next;s->next=q;        D. s->next=q;p->next=s->next;
[  ] 4.二维数组A[20][10]采用行优先的存储方法,若每个元素占2个存储单元,且第1个元素的首地址为200,则元素A[8][9]的存储地址为
A.374                                 B.576
C.378                                 D.580
[  ] 5.设有一个顺序栈的入栈序列是a、b、c,则3个元素都出栈的可能不同排列个数为
       A.4                                  B.5     
C. 6                                  D. 7


[  ] 6. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1  则T中的叶子数为
    A.5                                 B.6         
    C.7                                 D.8
[  ] 7.以下说法不正确的是
    A.无向图中的极大连通子图称为连通分量
    B.连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点
    C.图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点
    D.有向图的遍历不可采用广度优先搜索
[  ] 8. 假设在构建散列表时,采用线性探测解决冲突。若连续插入的n个关键字都是同义词,则查找其中最后插入的关键字时,所需进行的比较次数为
     A. n-1        B. n       
     C. n+l        D. n+2
[  ] 9.设置溢出区的文件是
     A.索引非顺序文件                                    B.ISAM文件
     C.VSAM文件                                            D.顺序文件
[  ] 10. 已知一组关键字为{25,48,36,72,79,82,23,40,16,35},其中每相邻两个为有序子序列。对这些子序列进行一趟两两归并的结果是
A.{25,36,48,72,23,40,79,82,16,35}
B.{25,36,48,72,16,23,40,79,82,35}
C.{25,36,48,72,16,23,35,40,79,82}
D.{16,23,25,35,36,40,48,72,79,82}
二、填空题(每小题1分,共10小题,10分)
11.下面程序段中带下划线的语句的执行次数的数量级是(              )。
i=1; WHILE(i<n) i=i*2;
12.假设带头结点的非空单循环链表中仅设尾指针L,则在第1个结点之前插入指针s所指结点的语句依次是(                          )。
13.无表头结点的链队列Q为空的条件是(                     )。
14.设Q[0..N-1]为循环队列,其头、尾指针分别为P和R,则队Q中当前所含元素个数为(             )。
15.一棵含999个结点的完全二叉树的深度为(               )。
16.在 AOV网 中,存在环意味着某项活动以自己为先决条件;对程序的数据流图来说,它表明存在(                 )。
17. 有向图G可拓扑排序的判别条件是(                          )。
18.如果结点A有 3个兄弟,而且B是A的双亲,则B的度是(               )。
19.应用回溯与分支限界法解决实际问题时,在搜索过程中利用判定函数,也称为(              )。
20. 若以1234作为双端队列的输入序列,则既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列是(                    )。
三、应用题(每小题6分,共5小题,30分)
21.比较线性表和栈的基本操作的不同点。










22.有一个二叉树按层次顺序存放在一维数组中,如下图所示:
试求:(1)该树的后序遍历序列。
     (2)画出该树的后序线索树。
1    2   3   4    5   6   7    8   9  10   11      
A        C        B                        E        D                               











23.分析顺序查找算法的“监视哨”设置作用








24.对n个整数的序列进行直接选择排序。
    (1)算法描述。
    (2)并给出实例(52   49  80  36  14  58  61  23  )的排序过程。















25. 已知有一个10个顶点的连通图,顶点编号为1至10,其边的关系集合表示为{(1,2)(1,3),(1,8),(2,4),(3,9),(3,10),(5,7),(6,7),(7,8),(8,9)},试求:画出该连通图及以顶点1为根的深度优先生成树。

















四、算法阅读题(本题10分)
26.设计算法实现以链表作存储结构,将线性表中前m个元素和后n个元素进行整体互换,即(a1,…,am,b1,…,bn) 改变成(b1,…,bn,a1,…,am)。阅读算法,在横线处填入语句或注释。
    void exchange_L( Linklist &L,int m ) {
      // 本算法实现单链表中前m个结点和后n个结点的整体互换
      if ( m && L->next ) { // 链表不空且
           p = L->next;
            (1)
             while( k< m && p ) { //(2)
           p = p->next; ++k;
         } // while
             if (p && (3)) { // n!=0 时才需要修改指针
             ha = L->next;  //  以指针 ha 记a1结点的位置  
                 (4)= p->next;  // 将 b1 结点链接在头结点之后
                 p->next = NULL;  // 设am的后继为空
                 q = L->next; // 令q 指向 b1结点
                 while (q->next)
                      q = q->next; // 查找 bn 结点
                 q->next = ha; // (5)
             } // if(p)
         } // if(m)
    } // exchange_L

(1)
(2)
(3)
(4)
(5)







五、算法阅读题(本题10分)
27.设任意n个整数存放于数组A(1:n)中,阅读算法,指出功能及分析指针i和j的作用。
void Arrange(int A[],int n) {
  // n个整数存于数组A中
    int i=0,j=n-1,x;  // 数组下标从0开始
     while(i<j){
      while(i<j && A[i]>0)  i++;
     while(i<j && A[j]<0)  j--;
       if(i<j) { // 交换A[i] 与A[j]
           x=A[i]; A[i++]=A[j]; A[j--]=x;
       }// if
  }// while
     }//Arrange

(1)功能:
(2)指针i和j的作用:

六、算法设计题(本题10分)
28.设计算法purge_Sq实现删除顺序表SqList中重复元素,指出其算法的时间复杂度。


















七、算法设计题(本题10分)
29.设计算法从图的邻接表结构转换成邻接矩阵结构的算法。
























欢迎光临 作业辅导网 (http://aopeng100.com/) Powered by Discuz! X3.2