- 1_1.1.1 關于數(shù)據(jù)組織-例_圖書擺放
- 2_1.1.2 關于空間使用-例_PrintN函數(shù)實現(xiàn)
- 3_1.1.3 關于算法效率-例_計算多項式值
- 4_1.1.4 抽象數(shù)據(jù)類型
- 5_1.2.1 算法的定義
- 6_1.2.2 什么是好的算法
- 7_1.2.3 復雜度的漸進表示
- 8_1.3.1 應用實例-算法1 & 2
- 9_1.3.2 應用實例-算法3
- 10_1.3.3 應用實例-算法4
- 11_“中國高校計算機大賽-團體程序設計天梯賽”酷炫視頻
- 12_2.1.1 引子_多項式表示
- 13_2.1.2 線性表及順序存儲
- 14_2.1.3 順序存儲的插入和刪除
- 15_2.1.4 鏈式存儲及查找
- 16_2.1.5 鏈式存儲的插入和刪除
- 17_2.1.6 廣義表與多重鏈表
- 18_2.2.1 什么是堆棧
- 19_2.2.2 堆棧的順序存儲實現(xiàn)
- 20_2.2.3 堆棧的鏈式存儲實現(xiàn)
- 21_2.2.4 堆棧應用_表達式求值
- 22_2.3.1 隊列及順序存儲實現(xiàn)
- 23_2.3.2 隊列的鏈式存儲實現(xiàn)
- 24_2.4 多項式的加法運算實現(xiàn)
- 25_1.題意理解與多項式表示
- 26_2.程序框架及讀入多項式
- 27_3.加法、乘法運算及多項式輸出
- 28_3.1.1 引子(順序查找)
- 29_3.1.2 引子(二分查找例子)
- 30_3.1.3 引子(二分查找實現(xiàn))
- 31_3.1.4 樹的定義和術語
- 32_3.1.5 樹的表示
- 33_3.2.1 二叉樹的定義及性質
- 34_3.2.2 二叉樹的存儲結構
- 35_3.3.1 先序中序后序遍歷
- 36_3.3.2 中序非遞歸遍歷
- 37_3.3.3 層序遍歷
- 38_3.3.4 遍歷應用例子
- 39_1.題意理解及二叉樹表示
- 40_2.程序框架、建樹及同構判別
- 41_4.1.1 二叉搜索樹及查找
- 42_4.1.2 二叉搜索樹的插入
- 43_4.1.3 二叉搜索樹的刪除
- 44_4.2.1 什么是平衡二叉樹
- 45_4.2.2 平衡二叉樹的調整
- 46_1.題意理解及搜索樹表示
- 47_2.程序框架及建樹
- 48_3.搜索樹是否一樣的判別
- 49_線形結構習題.1 什么是抽象的鏈表
- 50_線形結構習題.2 鏈表逆轉算法
- 51_線性結構習題.3 測試數(shù)據(jù)
- 52_5.1.1 什么是堆
- 53_5.1.2 堆的插入
- 54_5.1.3 堆的刪除
- 55_5.1.4 堆的建立
- 56_5.2.1 什么是哈夫曼樹
- 57_5.2.2 哈夫曼樹的構造
- 58_5.2.3 哈夫曼編碼
- 59_5.3.1 集合的表示及查找
- 60_5.3.2 集合的并運算
- 61_堆中的路徑
- 62_小白-FT.1 集合的簡化表示
- 63_小白-FT.2 題意理解與TSSN的實現(xiàn)
- 64_小白-FT.3 按秩歸并
- 65_小白-FT.4 路徑壓縮
- 66_6.1.1 什么是圖-定義
- 67_6.1.2 什么是圖-鄰接矩陣表示法
- 68_6.1.3 什么是圖-鄰接表表示法
- 69_6.2.1 圖的遍歷-DFS
- 70_6.2.2 圖的遍歷-BFS
- 71_6.2.3 圖的遍歷-為什么需要兩種遍歷
- 72_6.2.4 圖的遍歷-圖不連通怎么辦
- 73_6.3 應用實例_拯救007
- 74_6.4 應用實例_六度空間
- 75_小白-BG.1 鄰接矩陣表示的圖結點的結構
- 76_小白-BG.2 鄰接矩陣表示的圖-初始化
- 77_小白-BG.3 鄰接矩陣表示的圖-插入邊
- 78_小白-BG.4 鄰接矩陣表示的圖-建立圖
- 79_小白-BG.5 鄰接表表示的圖結點的結構
- 80_小白-BG.6 鄰接表表示的圖-建立圖
- 81_樹習題-TTA.1 題意理解
- 82_樹習題-TTA.2 核心算法
- 83_樹習題-CBST.1 數(shù)據(jù)結構的選擇
- 84_樹習題-CBST.2 核心算法
- 85_樹習題-CBST.3 計算左子樹的規(guī)模
- 86_樹習題-HC.1 題意理解
- 87_樹習題-HC.2 計算最優(yōu)編碼長度
- 88_樹習題-HC.3 檢查編碼
- 89_7.1.1 概述
- 90_7.1.2 無權圖的單源最短路
- 91_7.1.2-s 無權圖的單源最短路示例
- 92_7.1.3 有權圖的單源最短路
- 93_7.1.3-s 有權圖的單源最短路示例
- 94_7.1.4 多源最短路算法
- 95_小白-HP.1題意理解
- 96_小白-HP.2 程序框架搭建
- 97_小白-HP.3 選擇動物
- 98_小白-HP-4 模塊的引用與裁剪
- 99_8.1.1 Prim算法
- 100_8.1.2 Kruskal算法
- 101_8.2.1 拓撲排序
- 102_8.2.2 關鍵路徑
- 103_圖習題.1 核心算法
- 104_圖習題.2 其他推廣
- 105_9.1.1 概述
- 106_9.1.2 冒泡排序
- 107_9.1.3 插入排序
- 108_9.1.4 時間復雜度下界
- 109_9.2 希爾排序
- 110_9.3.1 選擇排序
- 111_9.3.2 堆排序
- 112_9.4.1 有序子列的歸并
- 113_9.4.2 遞歸算法
- 114_9.4.3 非遞歸算法
- 115_10.1.1 算法概述
- 116_10.1.2 選主元
- 117_10.1.3 子集劃分
- 118_10.1.4 算法實現(xiàn)
- 119_10.2.1 算法概述
- 120_10.2.2 物理排序
- 121_10.3.1 桶排序
- 122_10.3.2 基數(shù)排序
- 123_10.3.3 多關鍵字的排序
- 124_10.4 排序算法的比較
- 125_11.1.1 引子_散列的基本思路
- 126_11.1.2 什么是散列表
- 127_11.2.1 數(shù)字關鍵詞的散列函數(shù)構造
- 128_11.2.2 字符串關鍵詞的散列函數(shù)構造
- 129_11.3.1 開放定址法
- 130_11.3.2 線性探測
- 131_11.3.3 線性探測—字符串的例子
- 132_11.3.4 平方探測法
- 133_11.3.5 平方探測法的實現(xiàn)
- 134_11.3.6 分離鏈接法
- 135_11.4 散列表的性能分析
- 136_11.5 文件中單詞詞頻統(tǒng)計
- 137_小白-PM.1題意理解與解法分析
- 138_小白-PM.2 程序框架搭建
- 139_小白-PM.3 輸出狂人
- 140_小白-PM-4 模塊的引用與裁剪
- 141_習題-IOM.1 插入排序的判斷
- 142_習題-IOM.2 歸并段的判斷
- 143_習題-SWS.1 環(huán)的分類
- 144_習題-SWS.2 算法示例
- 145_習題-HHV 算法思路概述
“數(shù)據(jù)結構”是計算機科學與技術專業(yè)、軟件工程專業(yè)甚至于其它電氣信息類專業(yè)的重要專業(yè)基礎課程。它所討論的知識內容和提倡的技術方法,無論對進一步學習計算機領域的其它課程,還是對從事大型信息工程的開發(fā),都是重要而必備的基礎。
程序設計解決問題往往有多種方法,且不同方法之間的效率可能相差甚遠。程序的時間和空間效率,不僅跟數(shù)據(jù)的組織方式有關,也跟處理流程的巧妙程度有關。本課程將介紹并探討有關數(shù)據(jù)組織、算法設計、時間和空間效率的概念和通用分析方法,幫助學員學會數(shù)據(jù)的組織方法和一些典型算法的實現(xiàn),能夠針對問題的應用背景分析,選擇合適的數(shù)據(jù)結構,從而培養(yǎng)高級程序設計技能。
注意:本課程只涉及最基礎的數(shù)據(jù)結構和與之關聯(lián)的最基本的算法,更多更復雜的數(shù)據(jù)結構和經典的解決優(yōu)化問題的算法,將在后續(xù)課程中介紹。
本課程的特點是,對每一種重要的經典數(shù)據(jù)結構,我們都會從實際應用問題出發(fā),導出其定義、實現(xiàn)(存儲)方法以及操作實現(xiàn),并以更豐富的綜合應用案例和練習題幫助學員增強對理論的感性認識,從而明白這些數(shù)據(jù)結構為什么存在以及在什么情況下可以最好地解決什么樣的問題。為了兼顧起點不同的學員,課程中特意設計了“小白專場”系列,手把手教授如何將解決問題的抽象算法用具體的代碼實現(xiàn),從而引導初學者更好地入門。
