浙大数据结构期中考试试题

1-1

无向连通图所有顶点的度之和为偶数。 (3分)

T         F

Author: DS课程组

Organization: 浙江大学

1-2

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

T         F

Author: DS课程组

Organization: 浙江大学

1-3

所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。 (2分)

T         F

Author: DS课程组

Organization: 浙江大学

1-4

某二叉树的前序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无右孩子。 (3分)

T         F

Author: DS课程组

Organization: 浙江大学

1-5

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

T         F

Author: DS课程组

Organization: 浙江大学

1-6

若一个栈的输入序列为{1, 2, 3, 4, 5},则不可能得到{3, 4, 1, 2, 5}这样的出栈序列。 (3分)

T         F

Author: 徐镜春

Organization: 浙江大学

1-7

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

T         F

Author: 何钦铭

Organization: 浙江大学

1-8

若用链表来表示一个线性表,则表中元素的地址一定是连续的。 (3分)

T         F

Author: 陈越

Organization: 浙江大学

1-9

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

T         F

Author: DS课程组

Organization: 浙江大学

1-10

将1、2、3、4、5、6顺序插入初始为空的AVL树中,当完成这6个元素的插入后,该AVL树的先序遍历结果是:4、2、1、3、5、6。 (3分)

T         F

2-1

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

  1. 4和-5
  2. 8和-5
  3. 8和-6
  4. 1和-6

Author: DS课程组

Organization: 浙江大学

2-2

下列函数中,哪个函数具有最快的增长速度? (4分)

  1. N(logN)​4​​
  2. N​3​​
  3. NlogN​2​​
  4. N​2​​logN

Author: DS课程组

Organization: 浙江大学

2-3

给定N×N×N的三维数组A,则在不改变数组的前提下,查找最小元素的时间复杂度是:(4分)

  1. O(NlogN)
  2. O(N​2​​)
  3. O(N​3​​logN)
  4. O(N​3​​)

Author: DS课程组

Organization: 浙江大学

2-4

设一棵非空完全二叉树 T 的所有叶节点均位于同一层,且每个非叶结点都有 2 个子结点。若 T 有 k 个叶结点,则 T的结点总数是:(4分)

  1. k​2​​
  2. 2k−1
  3. 2k
  4. 2​k​​−1

Author: 考研真题

Organization: 浙江大学

2-5

对最小堆(小顶堆){1,3,2,12,6,4,8,15,14,9,7,5,11,13,10} 进行三次删除最小元的操作后,结果序列为:(4分)

  1. 4,6,5,12,7,10,8,15,14,9,13,11
  2. 4,5,6,12,7,10,8,15,14,13,9,11
  3. 4,5,6,7,8,9,10,11,12,13,14,15
  4. 4,6,5,13,7,10,8,15,14,12,9,11

Author: DS课程组

Organization: 浙江大学

2-6

三叉树中,度为1的结点有5个,度为2的结点3个,度为3的结点2个,问该树含有几个叶结点? (4分)

  1. 10
  2. 13
  3. 8
  4. 12

Author: DS课程组

Organization: 浙江大学

2-7

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

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

Author: DS课程组

Organization: 浙江大学

2-8

表达式a*(b+c)-d的后缀表达式是: (4分)

  1. a b c d * + -
  2. a b c + * d -
  3. a b c * + d -
  4. - + * a b c d

Author: DS课程组

Organization: 浙江大学

2-9

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

  1. 40
  2. 36
  3. 25
  4. 12

Author: DS课程组

Organization: 浙江大学

2-10

在图中自d点开始进行深度优先遍历算法可能得到的结果为: (4分)

  1. d,a,e,b,c,f
  2. d,e,a,c,f,b
  3. d,f,c,e,a,b
  4. d,a,c,f,e,b

Author: DS课程组

Organization: 浙江大学

2-11

在一个不带头结点的非空链式队列中,假设f和r分别为队头和队尾指针,则插入s所指的结点运算是( )。 (4分)

  1. f->next=s; f=s;
  2. r->next=s; r=s;
  3. s->next=s; r=s;
  4. s->next=f; f=s;

Author: 严冰

Organization: 浙江大学城市学院

2-12

在单链表中,若p所指的结点不是最后结点,在p之后插入s所指结点,则执行 (4分)

  1. s->next=p->next; p->next=s;
  2. s->next=p; p->next=s;
  3. s->next=p->next; p=s;
  4. p->next=s; s->next=p;

5-1

下列代码的功能是从一个大顶堆H的某个指定位置p开始执行下滤。

void PercolateDown( int p, PriorityQueue H )
{
   int  child;
   ElementType  Tmp = H->Elements[p];
   for ( ; p * 2 <= H->Size; p = child ) {
      child = p * 2;
      if ( child!=H->Size && (6分) )
         child++;
      if ( H->Elements[child] > Tmp )
         (6分);
      else  break;
   }
   H->Elements[p] = Tmp; 
}

Author: 陈越

Organization: 浙江大学

Time Limit: 400 ms

Memory Limit: 64 MB

5-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;
        (6分);  
        New_head = Old_head;  
        Old_head = Temp; 
    }
    (6分);
    return L;
}

猜你喜欢

转载自blog.csdn.net/wwxy1995/article/details/83214914