日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

中国大学MOOC-陈越、何钦铭-数据结构-2019春期末考试(题目+部分解答)

發布時間:2023/12/2 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中国大学MOOC-陈越、何钦铭-数据结构-2019春期末考试(题目+部分解答) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?歡迎評論(指正或是詢問都可),謝謝大家

一、判斷題

思路很正常的題目。

1-4反例:4個頂點只用3條邊就可以做到全連通。所以邊數可能等于頂點個數減一。錯誤。

?

二、選擇題

?

?

2-8需要細心的做一下雙旋操作,

?

?

2-12 C?

設數字 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 在大小為10的散列表中根據散列函數?h(X)=X%10得到的下標對應為 {1, 3, 4, 9, 5, 0, 2}。那么繼續用散列函數 “h(X)=X%表長”實施再散列并用線性探測法解決沖突后,它們的下標變為:(4分)

  • 11, 3, 13, 19, 4, 0, 9
  • 1, 3, 4, 9, 5, 0, 2
  • 1, 12, 9, 13, 20, 19, 11
  • 1, 12, 17, 0, 13, 8, 14
  • ?

    再散列即是double擴大原表長,使得loading factor(α)下降一半的過程。因為裝載因子和期望查找長度有反相關的關系(參考數據結構第三版?散列性能分析章節的一張曲線圖),所以降低α這樣可以增加散列查找的效率。

    本題中再散列后的表長應該是20,但是要取大于20的第一個素數,所以表長取23較適宜。所以選C,而不是A。

    ?

    2-14?此題有爭議?C、D?當初是看錯選對的,看書上的意思應該選C??求大佬指正。

    ?

    ?

    ?

    2-20?三角不等式在圖論中同樣也適用,兩邊之和必定大于第三邊。

    2-21?圖退化成線性表后,堆棧和隊列的拓撲排序就相同。

    ?

    ?

    三、程序填空題

    ++counter //TopNum starts counting from 1

    --Indegree[W]

    ?

    ?

    這個堆的應用很聰明,就是找出K個盡可能小的數字,再在其中選一個最大的數即為第K小的數。

    建立了K個元素的大頂堆利用不等式的傳遞性質。如果一個數大于堆頂,那其必定大于堆頂以下的元素,那這個數至少是第K+1小的數(因為比K+1個數還大),所以在循環中直接跳過該數;如果一個數小于堆頂,則完成替換堆頂+調整最大堆的操作,使得最大堆里永遠是較小的一堆數字。

    ?

    ?

    四、編程題

    7-1?根據后序和中序遍歷輸出先序遍歷?(8?point(s))

    本題要求根據給定的一棵二叉樹的后序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。

    輸入格式:

    第一行給出正整數N(≤30),是樹中結點的個數。隨后兩行,每行給出N個整數,分別對應后序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。

    輸出格式:

    在一行中輸出Preorder:以及該樹的先序遍歷結果。數字間有1個空格,行末不得有多余空格。

    輸入樣例:

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

    輸出樣例:

    Preorder: 4 1 3 2 6 5 7

    陳越老師一道講過的課后習題

    ?

    思路:

    申請三個全局數組。PostOrder、InOrder、PreOrder。

    依據PostOrder找到根節點后記錄,查找InOrder中的根節點,把InOrder原序列劃分成左右兩個子序列;遞歸解決問題。

    ?

    參考代碼:

    1 #include <cstdio> 2 #define MAXN 50 3 4 int pre[MAXN], in[MAXN], post[MAXN]; 5 6 7 8 void InputPostAndIn(int N); 9 void solve(int preL, int inL, int postL, int n); 10 void OutputPost(int N); 11 12 int main() 13 { 14 int N; scanf("%d", &N); 15 InputPostAndIn(N); 16 solve(0, 0, 0, N); 17 OutputPost(N); 18 } 19 20 void InputPostAndIn(int N) 21 { 22 23 for (int i=0; i<N; i++) { 24 scanf("%d", &post[i]); 25 } 26 for (int i=0; i<N; i++) { 27 scanf("%d", &in[i]); 28 } 29 30 } 31 32 void solve(int preL, int inL, int postL, int Num) 33 { 34 if (Num == 0) { 35 return; 36 } 37 38 int root, i, LTreeNodeNum, RTreeNodeNum; 39 root = post[postL + Num - 1]; 40 pre[preL] = root; 41 42 for (i=inL; in[i]!=root; i++) {} 43 44 LTreeNodeNum = i - inL; RTreeNodeNum = Num - LTreeNodeNum - 1; 45 46 solve(preL+1, inL, postL, LTreeNodeNum); 47 solve(preL+1+LTreeNodeNum, inL+1+LTreeNodeNum, postL + LTreeNodeNum, RTreeNodeNum); 48 } 49 50 void OutputPost(int N) 51 { 52 printf("Preorder: "); 53 printf("%d", pre[0]); 54 for (int i=1; i<N; i++) { 55 printf(" %d", pre[i] ); 56 } 57 printf("\n"); 58 } View Code

    ?

    轉載于:https://www.cnblogs.com/acoccus/p/10957065.html

    總結

    以上是生活随笔為你收集整理的中国大学MOOC-陈越、何钦铭-数据结构-2019春期末考试(题目+部分解答)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。