山東大學軟件學院數據結構(考試)——期末考試回憶版

2020年1月9日 8:30~10:30,山東大學軟件學院數據結構考試

試卷結構和題目:
一. 簡答題(20分)

  1. 給一個序列插入堆棧中,又給出兩個序列,問能否通過堆棧操作,得到這後給出的兩個序列
  2. 給一個二叉樹前序序列和中序序列,寫出後序序列
  3. 寫出將四維數組以列主映射方式映射到一維數組的映射公式
  4. 含有n個非葉節點的m階B-樹,計算出該樹非葉節點所含有的最少的關鍵字總數
  5. 給一個AOV圖,寫出拓撲排序算法的思想,並寫出圖中所有的拓撲序列

二. 應用題(50分)

  1. 散列表Hash(k) = k%11,散列表(線性探查)長度爲13,給一組序列:(1)構建出該散列表;(2)散列表中某2個元素的比較次數;(3)畫出刪除指定元素後的散列表
  2. 題中給出反對角矩陣的具體定義,要求畫出一個4x4的反對角矩陣的樣例,並寫出將其映射到一維數組的映射公式
  3. 給一個序列,構建出AVL搜索樹,並求出平均查找長度(每個節點出現的概率相等)
  4. 給一個序列,通過堆排序刪除2個最小元素,畫出刪除2個最小元素後的堆
  5. 給一個無向加權圖,使用Prim算法,從題中指定的頂點開始構建最小成本生成樹

三. 算法題(30分)

  1. 將一個數組中的奇數元素都移到偶數元素之前,要求有最優時間複雜度,寫出算法思想,並用C++實現,再求出時間複雜度
  2. 二叉樹的節點:lchild左指針域,data數據,rchild右指針域,構建一個單鏈表,將二叉樹的葉子節點從左至右連接起來,head爲此單鏈表頭節點,用葉節點的右指針域存放鏈表節點,寫出算法思想,並用代碼實現,並分析算法複雜度

個人認爲這次考試應該可以95+,至少對於我來說是比較簡單的,後面兩個算法題也是讀完就知道怎麼做。數據結構我是考前25天開始複習的,對於考試,複習只需要掌握思想,對,就是思想,代碼不用會背,但只有瞭解代碼才能熟悉思想,真正要學好數據結構,一定要鑽研代碼。(算法題第一題,採用two pointers思想,很容易解決)
正如我之前在“山東大學計算機組成原理(考試)——期末考試回憶版”裏面說的一樣,考前多去其他班級的考前答疑,並向其他班同學交換一些資料。
最後預祝各位同學,期末取得好成績。

在這裏強烈推薦一波《算法筆記》和《算法筆記上機訓練實戰指南》兩本書再加上PTA網站(網站上有PAT的題),每天花上一小時,堅持住,絕對沒問題,不求快只求穩,靜下心,每道題弄懂,適時地複習所學過的。這一套最好是在大二上學期結束後的寒假開始,當然也可以在大二上跟着課程進度學習。我是大二上學期開始刷的,中間中斷了幾個月,寒假開始繼續刷。怎麼說呢?這兩本書不看是巨大的損失!!!


更新一下,數據結構期末考試98分,還可以。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章