1. 程式人生 > >浙大資料結構期中考試試題

浙大資料結構期中考試試題

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;
}