本課程將對計算機科學中常使用到的資料結構做一個完整的介紹。並分析各個ADT的操作與演算法的 時間與空間複雜度。本課程使用C++程式語言實作。
| Lecture | Content | Reading |
|---|---|---|
| 1 | Introduction, Review of C++, Sorting | Section 7.2 |
| 2 | Algorithmic Complexity (Insertion Sort) | Section 1.7. |
| 3 | Experimental Performance Measurement. | Section 1.7. |
| 4 | Abstract Data Types. | Sections 1.3 and 2.1. |
| 5 | Sparse Matrices. | Section 2.4. |
| 6 | Arrays. | Section 2.5. |
| 6.5 | Templates in C++ | Section |
| 7 | Stacks. | Section 3.6. |
| 8 | Stacks. | Section 3.2. |
| 9 | Queues. | Section 3.3. |
| 9.5 | Evaluation of Expressions | Section 3.6. |
| 10 | Linked Lists. | Sections 4.1 and 4.2. |
| 11 | The Template Class Chain. | Section 4.3. |
| 12 | Iterators and Chain Variants. | Sections 4.3, 4.4, 4.10. |
| 13 | Trees. | Section 5.1. |
| 14 | Binary Trees. | Section 5.2. |
| 15 | Binary Tree Traversals. | Section 5.3. |
| 16 | Priority Queues. | Sections 5.6 and 7.6. |
| 17 | Max Heaps and Leftist Trees | Sections 5.6 and 9.2. |
| 18 | Binary Search Trees. | Section 5.7. |
| 19 | Selection Trees. | Section 5.8. |
| 20 | Disjoint Sets | Section 5.10. |
| 21 | Graphs. | Section 6.1. |
| 22 | Graph Search Methods. | Section 6.2. |
| 23 | Min Cost Spanning Trees. | Section 6.3. |
| 24 | Shortest Path Problems (Dijkstra). | Section 6.4.1. |
| 25 | Shortest Paths (Bellman Ford). | Section 6.4.2. |
| 26 | All Pairs Shortest Paths. | Section 6.4.3 |
| 27 | Sorting. | Sections 7.3 and 7.5 |
| 28 | External Sorting. | Section 7.10. |
| 29 | External Sorting. | Section 7.10. |
| 30 | External Sorting. | Section 7.10. |
| 31 | External Sorting (Run Merging, Huffman Codes). | Section 7.10. |
| 32 | Hash Tables. | Sections 8.2.1 and 8.2.2. |
| 33 | Hash Tables. | Sections 8.2.4 and 8.2.5 |
| 34 | Bloom Filters. | Section 8.4 |
| 35 | Amortized Complexity. | Section 9.3.1. |
| 36 | Binomial Heaps. | Section 9.3. |
| 37 | Binomial Heaps (analysis). | Section 9.3.6. |
| 38 | Fibonacci Heaps. | Section 9.4. |
| 39 | Fibonacci Heaps (analysis) . | iSection 9.4.5 |
| 40 | Pairing Heaps. | Section 9.5 |
| 41 | Interval Heaps. | Section 9.7 |
| 42 | Static Dictionaries. | Section 10.1 |
| 43 | Dynamic Dictionaries (AVL Trees). | Section 10.2 |
| 44 | Red Black Trees. | Section 10.3 |
| 45 | Red Black Trees. | Section 10.3 |
| 46 | Splay Trees. | Section 10.4 |
| 47 | Splay Trees (analysis). | Section 10.4 |
| 48 | B Trees. | Section 11.2 |
| 49 | B Trees (continued). | Section 11.2 |
| 50 | B+ Trees. | Section 11.3 |
| 51 | Digital Search Trees and Binary Tries. | Section 12.1 |
| 52 | Binary Tries and Compressed Binary Tries . | Section 12.2 |
| 53 | Patricia. | Section 12.2.3 |
| 54 | Higher Order Tries. | Section 12.3 |
| 55 | Router/Classifier/Firewall Tables. | Section 12.5 |
| 56 | Suffix Trees. | Section 12.4 |