中国大学MOOC-陈越、何钦铭-数据结构-2021春期中考试

个人记录 错题

 
判断题
R1-1

用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关。(3分) 


 
R1-2 

如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G中一定有回路。(3分) F


 
R1-3

对于顺序存储的长度为N的线性表,删除第一个元素和插入最后一个元素的时间复杂度分别对应为O(1)和O(N)。(3分) F 都是O(1)


 
R1-4

通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。输出的序列为:123。(3分) F


 
R1-5

在用数组表示的循环队列中,front值一定小于等于rear值。(2分) F


 
R1-6

已知一棵二叉树的先序遍历结果是ABC, 则CAB不可能是中序遍历结果。(3分) T


 
R1-7

将一棵完全二叉树存于数组中(根结点的下标为1)。则下标为23和24的两个结点是兄弟。(3分) F


 
R1-8

若一棵平衡二叉树的所有非叶结点的平衡因子都是0,则其必为完美二叉树。 (3分) T 完美二叉树     是完全二叉树 ,但完全二叉树不一定是完美二叉树 


 
R1-9

在一棵由包含4、5、6等等一系列整数结点构成的二叉搜索树中,如果结点4和6在树的同一层,那么可以断定结点5一定是结点4和6的父亲结点。(3分) F


 
R1-10

算法分析的两个主要方面是时间复杂度和空间复杂度的分析。(2分) T


 
选择题
R2-1

在并查集问题中,已知集合元素0~8所以对应的父结点编号值分别是{ 1, -4, 1, 1, -3, 4, 4, 8, -2 }(注:n表示树根且对应集合大小为n),那么将元素6和8所在的集合合并(要求必须将小集合并到大集合)后,该集合对应的树根和父结点编号值分别是多少?(4分) D.4和-5

 
8和-5  1和-6  8和-6  

 
R2-2

设一段文本中包含字符{a, b, c, d, e},其出现频率相应为{3, 2, 5, 1, 1}。则经过哈夫曼编码后,文本所占字节数为:(4分) D.25

36  12  


 
R2-3

下列哪个函数是O(N)的?(4分)  B.log(N​^2)

N​^2​​/2  log(N​^2)​​  2NlogN  

 
R2-4

设 n 是描述问题规模的非负整数,下列程序段的时间复杂度是:(4分) O(n​^(1/2)​​)

x = 0;
while ( n >= (x+1)*(x+1) )
    x = x+1;
 
O(n​^(1/2)​​)  O(logn)  O(n​^2​​)  

 
R2-5

循环顺序队列中是否可以插入下一个元素()。(4分) B.与队头指针和队尾指针的值有关

与队头指针和队尾指针的值有关
只与队尾指针的值有关,与队头指针的值无关
 

 
R2-6

若某图的深度优先搜索序列是{V1, V4, V0, V3, V2},则下列哪个图不可能对应该序列?(4分) D

      D.

 

 
R2-7

在将数据序列( 6, 1, 5, 9, 8, 4, 7 )建成大根堆时,正确的序列变化过程是:(4分) A.6,1,7,9,8,4,5 → 6,9,7,1,8,4,5 → 9,6,7,1,8,4,5 → 9,8,7,1,6,4,5

6,9,5,1,8,4,7 → 6,9,7,1,8,4,5 → 9,6,7,1,8,4,5 → 9,8,7,1,6,4,5
 

 
R2-8

假设有5个整数以1、2、3、4、5的顺序被压入堆栈,且出栈顺序为3、5、4、2、1,那么为了获得这样的输出,堆栈大小至少为:(4分) D.4

5  2  4

 
R2-9

将{5, 2, 7, 3, 4, 1, 6}依次插入初始为空的二叉搜索树。则该树的后序遍历结果是:(4分) A.1, 4, 3, 2, 6, 7, 5

5, 4, 3, 7, 6, 2, 1
 

 
R2-10

已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是:(4分) B.111 第六层装满结点32个(最后8个为叶结点) 第七层只有前24*2个结点 共 2^6-1+24*2=111个

119  111  C.39  

 
R2-11

三叉树中,度为1的结点有5个,度为2的结点3个,度为3的结点2个,问该树含有几个叶结点?(4分) B.8 对于度为m叉树 ,有 n(0)=n(2)+2*n(m)+1

8  13  10

 
R2-12

h为不带头结点的单向链表。在h的头上插入一个新结点t的语句是:(4分) C.t->next=h; h=t;

B.t->next=h->next; h=t;


 
 
程序填空题

 
R5-1

下列代码的功能是将小顶堆H中指定位置P上的元素的整数键值下调D个单位,然后继续将H调整为小顶堆。

void DecreaseKey( int P, int D, PriorityQueue H )
{
   int i, key;
   key = H->Elements[P] - D;
   for ( i =/*填空处1 (6分)*/; H->Elements[i/2] > key; i/=2 )
      /*填空处2 (6分)*/;
   H->Elements[i] = key;
}

填空处  1. P  2. H->Elements[i] =H->Elements[i/2]

 
 

 
R5-2

下列代码的功能是返回带头结点的单链表L的逆转链表。

List Reverse( List L )
{
    Position Old_head, New_head, Temp;
    New_head = NULL;
    Old_head = L->Next;

    while ( Old_head )  {
        Temp = Old_head->Next;
        /*填空处1 (6分)*/;  
        New_head = Old_head;  
        Old_head = Temp; 
    }
     /*填空处2 (6分)*/;
    return L;
}        

填空处  1. Temp->next = Old_head  2. L->next=New_head 

 

 

posted @ 2021-05-28 22:28  keiiha  阅读(1034)  评论(0编辑  收藏  举报