1. 程式人生 > >資料結構課程主頁-2016級

資料結構課程主頁-2016級

  新學期,再度起程!
  翻轉的資料結構課程再度迎來新的一批同學。
  前兩年,資源建設基本完備,課堂方案逐漸完善,同學們對新型的學習方式設計給予了肯定(參見2014級問卷調查2015級學生總結)。
  針對2016級的教學,重點之一是完善課堂方案,讓課堂成為第二週一次的催化劑,以課堂活動為核心,讓學習更有效。這重中之重,便是小組合作,學習小組不僅在課堂起作用,而且要延伸到整個學習過程。
  重點之二,是減輕學習負擔。仗著資料結構課是電腦科學與技術專業最重要的專業基礎課,前兩屆的學生跟著我,能夠每週投入10小時以上的時間學習,同學們也基本能按要求去做,總體上也不超5×8小時的“工作時間”。但在這一方面,想做點努力,讓同學們少花些時間,提高核心能力。
  少說多幹。本文將提供2016級全體同學的部落格連結,以及有關實踐環節的學習資料連結。

學生部落格連結

1.孫仁圓  朱坤昂  張俊傑  楊合進  王百琛  張 行
2.王雪行  於 琛  李浩南  常 路  黎兆陽  劉澤齊  
3.張 帥  李 恩  姬長水  周月慶  申正陽  安 凱  
4.劉思源  賈存鈺  劉 濤  張延飛  宋 昊  李家年  
5.李首言  李金樸  劉照京  任澤西  範寶磊  王效傑  
6.杜昕曄  李琳汐  尹 娜  潘亞楠  李 瀟  徐瀟雨  
7.黃瀟慧  白苗苗  薛瑞琪  於子淇  孫銘馨  張翠平  

8.李慶耀  邵雪源  陳軍正  葛慧文  張思琦  何文潔
9.馬明祥  於 嵩  李小同  王長青

  王華慧  李佳駿
10.侯成健  趙楷文  張慶彪  田長航  張 昕  張文暢
11.高 晶  臧雲鵬  李 哲  劉 浩  胡俊超  李英榮
12.嶽增強  王萬興  黃士勝  王 碩  胡德傑  盛 凱
13.李欣豪  張雨萌  武美妤  董麗娟  尚文哲  劉文平  
14.王銘澤  於 涵  馮 圓  吳玉然  高兆港  董玉祥  

課程資源

第1周 學習改革準備活動

第2周 資料結構概述
1. 關於資料結構課程 16:49
2. 什麼是資料結構 13:15
3. 資料的邏輯結構及型別 19:29
4. 抽象資料型別 14:13
5. 演算法及其描述 17:08
6. 演算法複雜度概念 22:15
7. 演算法分析例項 12:16 

【補充例題】
8. 演算法與資料結構 14:56

第3周 線性表(1)——順序表

  1. 導學 0:00
  2. 線性表的邏輯結構與基本運算 21:25
  3. 線性表的順序儲存結構 8:50
  4. 建立線性表的實現(暨引數型別的討論) 18:40 [ 例程]
  5. 順序表基本運算的實現 18:48 [演算法庫] [補充案例:找Bug]
  6. 線性表順序儲存的應用 17:31 [例程]
  7. 實踐指導:用程式實踐演算法 15:30 [例程] [文字版]

第4周 線性表(2)——連結串列

8.線性表的鏈式儲存 12:19
9. 建立單鏈表 16:30 [例程]
10. 單鏈表基本操作的實現 18:59 [演算法庫]
11. 單鏈表應用舉例 24:12 [例程]
12. 雙鏈表 19:36 [演算法庫]
13. 迴圈連結串列 6:23 [演算法庫: 迴圈單鏈表] [演算法庫: 迴圈雙鏈表]
14. 線性表的應用 27:10 [例程]
15. 有序表 15:13 [例程]

第5周 棧和佇列(1)——棧
1. “棧和佇列”導學 9:23
2. 棧的定義 9:56
3. 棧的順序儲存結構及其基本運算實現 14:15 [演算法庫]
4. 棧的鏈式儲存結構及其基本運算的實現 6:39 [演算法庫]
5. 棧的應用1-表示式求值 31:23 [例程]
6. 棧的應用2-迷宮問題 19:48 [例程]

第7周 棧和佇列(2)——佇列
7. 佇列的定義 5:46
8. 順序隊的儲存及基本操作 12:24
9. 環形佇列的儲存及基本操作 21:00 [演算法庫]
10. 佇列的鏈式儲存結構及其基本運算的實現 17:07 [演算法庫]
11. 佇列的應用-迷宮問題 21:39 [例程]
12. 雙端佇列 5:04

(為保證學習的完整性,保留所有的學習內容。因學時原因壓縮內容,所以,按學習方案指導,優先完成必學內容。)
第8周(1) 串
1. 串的基本概念及導學 11:09 [自測]
2. 串的順序儲存及其基本操作實現 26:09 [演算法庫]
3. 串的順序儲存應用 12:53 [例程]
4. (選學)串的鏈式儲存及其基本操作實現 21:58 [演算法庫] [自測]
5. 串的模式匹配(Brute-Force演算法) 16:15 [例程]
6. (選學)串的模式匹配(KMP演算法) 33:20 [例程] [自測]

第8周(2) 陣列與廣義表
1. 陣列的基本概念與儲存結構 22:06 [自測]
2. 特殊矩陣的壓縮儲存 31:56 [例程] [自測]
3. 稀疏矩陣的三元組表示 26:41 [演算法庫] [自測]
4. (選學)稀疏矩陣的十字連結串列表示 28:33 [例程]
5. (選學)廣義表 13:58 [自測]
6. (選學)廣義表的儲存結構及基本運算的實現 30:40 [演算法庫]

第9周 樹和二叉樹(1)
1 樹結構導學 6:19
2 樹的基本概念 18:04
3 樹的基本術語 7:41
4 樹的性質 14:59
5 樹的儲存結構 13:33 [例程]
6 二叉樹概念和性質 18:02
7 二叉樹與樹、森林之間的轉換 12:13
8 二叉樹的儲存結構 9:21
9 二叉樹的基本運算及其實現 29:18 [演算法庫]
10 二叉樹的遍歷 18:42 [例程(演算法)] [例程(應用)]

第10周 樹和二叉樹(2)
11 二叉樹遍歷非遞迴演算法 23:04 [例程]
12 層次遍歷演算法 10:05 [例程] [例程(應用)]
13 二叉樹的構造 24:23 [例程]
14 線索二叉樹 21:41 [例程]
15 哈夫曼樹 29:24 [例程]

第11周 圖(1)
1. 圖結構導學 12:16
2. 圖的定義 7:34
3. 圖的基本術語 21:22
4. 圖的鄰接矩陣儲存結構及演算法 16:55 [例程]
5. 圖的鄰接表儲存結構及演算法 22:52 [演算法庫]
6. 圖的遍歷 24:05 [例程]
7. 非連通圖的遍歷 7:55 [例程]
8. DFS(深度優先搜尋)的應用 21:27 [例程]
9. BFS(廣度優先搜尋)的應用 12:12 [例程]

第12周 圖(2)

10.生成樹的概念 13:10
11.最小生成樹的普里姆算 26:36 [例程]
12.最小生成樹的克魯斯卡爾演算法 18:16[例程]
13.從一個頂點到其餘各頂點的最短路徑 34:15 [例程]
14.每對頂點之間的最短路徑 22:15[例程]
15.拓撲排序 15:39[例程]
16.AOE網與關鍵路徑 19:15

第13周 查詢(1)
1.查詢問題導學 13:31
2.線性表的順序查詢 7:52 [例程]
3.線性表的折半查詢 20:05 [例程]
4.索引儲存結構 5:26
5.分塊查詢 20:32 [例程]
6.二叉排序樹 22:58
7.二叉排序樹(續) 12:03 [例程]
8.平衡二叉樹 32:56 [例程]

第14周 查詢(2)和內部排序(1)
9. B-樹 29:01
10. B+樹 5:491
11. 雜湊表——雜湊結構 29:38
12. 雜湊表的運算 27:40 [例程]

  1. 排序問題及導學 11:54
  2. 插入排序之直接插入排序 18:00 [例程]
  3. 插入排序之希爾排序 14:40 [例程]

課後上機實踐及參考: 第14周 內部排序(1) (併入15周部分)

第15周 內部排序(二)
4. 交換排序之氣泡排序 16:22 [例程]
5. 交換排序之快速排序 20:13 [例程]
6. 選擇排序之直接選擇排序 10:06 [例程]
7. 選擇排序之堆排序 22:18 [例程]  [補充示例]
8. 歸併排序 18:08 [例程]
9. 簡單的計數排序 8:33 [例程]
10. 基數排序 20:06 [例程]
11. 各種排序的比較 8:39

課後上機實踐及參考: 第15周 內部排序 (含14周內部排序部分)

【自選擴充套件部分】
擴充套件一:外部排序

1.外排序概述7:27
2. 磁碟排序12:36
3. 多路平衡歸併25:53[例程]
4. 初始歸併段的置換-選擇排序演算法13:07[例程]
5. 最佳歸併樹 12:19
6. 磁帶多路平衡歸併排序 14:05
7. 磁帶多階段歸併排序 14:27

擴充套件二:檔案

1 檔案的基本概念16:27
2 順序檔案11:18
3 索引檔案13:37 [例程]
4 ISAM索引檔案18:16
5 VSAM索引檔案10:25
6 雜湊檔案11:16
7 多關鍵字檔案11:30
8 課程結語 7:04

上機實踐及參考: 檔案模擬