來自coolshell(From a website:Data Structure Visualizations)
還記得之前發布過的那個關於可視化排序的文章嗎?在網上又看到了一箇舊金山大學David Galles做的各種可視化的資料結構和基本演算法的首頁,網址在這裡,大家可以看看。我把這個頁面的目錄列在下面並翻譯了一下,大家可以直接點擊了。
不知道國內的教育有沒有相關的教學課件,至少在我大學的時候是沒有的。
基礎
- Stack棧: 數組實現
- Stack棧: 鏈表實現
- Queues隊列: 數組實現
- Queues隊列: 鏈表實現
- Lists列表: 數組實現 ( java 版示範)
- Lists列表: 鏈表實現 ( java 版示範)
索引
- Binary Search Trees 二叉檢索樹
- AVL Trees (平衡二叉檢索樹)
- Red-Black Trees 紅/黑樹狀結構 ( flash 版本示範)
- Open Hash Tables 開放雜湊表(Closed Addressing 鏈地址法)
- Closed Hash Tables 閉合雜湊表 (Open Addressing 開放定址法)
- Closed Hash Tables, using buckets 使用桶
- B Trees B樹
- B+ Trees B+樹
排序
- Comparison Sorting 比較式排序
- Bubble Sort 冒泡排序
- Selection Sort 選擇排序
- Insertion Sort 插入排序
- Shell Sort 希爾排序
- Merge Sort 歸併排序
- Quck Sort 快速排序
- Bucket Sort 桶排序
- Counting Sort 計數排序
- Radix Sort 基數排序
堆資料結構
- Heaps 堆
- Binomial Queues 二項隊列
圖 演算法
- Breadth-First Search 廣度優先搜尋
- Depth-First Search 深度優先搜尋
- Connected Components 連通性
- Dijkstra’s Shortest Path Dijkstra最短路徑
- Prim’s Minimum Cost Spanning Tree 最小產生樹
- Topological Sort 拓撲排序 ( flash 版本示範 java 版本示範)
- Floyd-Warshall 演算法(解決任意兩點間的最短路徑的一種演算法) (flash 版本示範 java 版本示範)
- 基於Kruskal演算法的最小產生樹的構建 ( flash 版本示範 java 版本示範)
動態編程
- 計算 Fibonacci 數 ( java 版本示範)
其它…
- Disjoint Sets (MIT演算法公開課中有一課討論的是這個,見網易公開課)
- Huffman Coding 哈夫曼編碼 ( java 版本示範)