學了很多雜亂的技術,繼續成長 漸感吃力,重新學習資料結構 與 演算法.
計劃:
1.嚴蔚敏《資料結構》《大話資料結構》,每天一個小例子。
2.採用C++ 或者C 。盡量用C++實現,以輔助理解物件導向編程思想。
3.與同學每天練習、討論一個資料結構問題。編寫、並分析一段代碼。
4.最最重要的是堅持下來。
5.將代碼和領悟寫在部落格上。
---------
1、每天一個小例子,具體的我們提前一天確定好;
2、我們各自實現代碼,然後互動看一下(確保代碼可讀性及本互學習),必要時討論;
3、每完成一塊知識,對比總結一下。
---------
注意:樹、圖、排序 是 以前學習的時候遺留的痛點。在這個時候不能放棄。最重要的是堅持。
學習曲線:
1.鏈表
線性表的順序儲存結構
線性表的鏈式儲存結構
單鏈表結構與順序儲存結構優缺點
靜態鏈表
迴圈鏈表
雙向鏈表
2.棧
兩棧共用空間
棧的鏈式儲存結構及實現
棧的應用——遞迴 --斐波那契數列實現.----- 遞迴定義....
棧的應用——四則運算運算式求值,尾碼,尾碼轉換為 中綴
3.隊列
迴圈隊列
4.串
樸素的模式比對演算法
KMP模式比對演算法
5.遍曆二叉樹
前序走訪 中序遍曆 後續遍曆
線索二叉樹
樹、森林與二叉樹的轉換
二叉樹轉換為樹.
赫夫曼樹----
赫夫曼編碼.
6. 圖
鄰接矩陣、鄰接表、鄰接多重表、十字鏈表、
深度優先搜尋、廣度優先搜尋
最小產生樹: 普裡姆(Prim)演算法.. 克魯斯卡爾(Kruskal)演算法.......
最短路徑 : 迪傑斯特拉(Dijkstra)演算法.--- 弗洛伊德(Floyd)演算法
拓撲排序
最短路徑演算法
7.尋找
順序尋找
二分
線性索引:稠密索引.. 分塊索引.....倒排索引....
平衡二叉樹
二叉排序樹
多路尋找(B樹)
散列尋找
散列函數構造:5種方式
散列衝突方法
8.排序
排序的基本概念與分類·
冒泡排序
簡單選擇
插入
希爾
堆排序
歸併
快速
學習資源:
1.data structure visualization:http://www.cs.usfca.edu/~galles/visualization/Algorithms.html
2.http://www.cnblogs.com/bourbon/archive/2011/08/26/2152158.html 排序演算法
3.http://www.cnblogs.com/bourbon/archive/2011/08/23/2151044.html 動態規劃
4.參考代碼:http://files.cnblogs.com/cj723/PlayWithDataStructureSourceCode.zip
demo list:
├─第3章線性表
│ 01線性表順序儲存_List.c
│ 02線性錶鏈式儲存_LinkList.c
│ 03靜態鏈表_StaticLinkList.c
│
├─第4章棧與隊列
│ 01順序棧_Stack.c
│ 02兩棧共用空間_DoubleStack.c
│ 03鏈棧_LinkStack.c
│ 04斐波那契函數_Fibonacci.c
│ 05順序隊列_Queue.c
│ 06鏈隊列_LinkQueue.c
│
├─第5章串
│ 01串_String.c
│ 02模式比對_KMP.c
│
├─第6章樹
│ 01二叉樹順序結構實現_BiTreeArray.c
│ 02二叉樹鏈式結構實現_BiTreeLink.c
│ 03線索二叉樹_ThreadBinaryTree.c
│
├─第7章圖
│ 01鄰接矩陣建立_CreateMGraph.c
│ 02鄰接表建立_CreateALGraph.c
│ 03鄰接矩陣深度和廣度遍曆DFS_BFS.c
│ 04鄰接表深度和廣度遍曆DFS_BFS.c
│ 05最小產生樹_Prim.c
│ 06最小產生樹_Kruskal.c
│ 07最短路徑_Dijkstra.c
│ 08最短路徑_Floyd.c
│ 09拓撲排序_TopologicalSort.c
│ 10關鍵路徑_CriticalPath.c
│
├─第8章尋找
│ 01靜態尋找_Search.c
│ 02二叉排序樹_BinarySortTree.c
│ 03平衡二叉樹_AVLTree.c
│ 04B樹_BTree.c
│ 05散列表_HashTable.c
│
└─第9章排序
|
---- 01排序_Sort.c
5.硬碟資源
X:\編程基礎\資料結構
C++資料結構4.zip
C++程式test_prog
C++程式test_prog.7z
大話資料結構SourceCode.zip
資料結構_ruby_programs.zip
資料結構與演算法ppt
資料結構與演算法ppt.rar
歐陽浩 項目源檔案 及 ppt .rar