課程內容
資料結構(Data Structures)是資訊學科中的核心課程之一,也是嵌入式軟體設計的基礎課程。「資料結構精修班」教授軟體開發者必修的資料結構和演算法,讓你思考程式的執行效率。
1. 不僅學會撰寫程式,還能夠清楚掌握程式的重要觀念,了解”軟體程式=演算法+資料結構。
2. 能熟悉不同資料結構的設計模式。
3. 能了解軟體程式在何時會應用到這些資料結構。
4. 藉由排序與搜尋演算法理解來討論Big-O演算法效能分析。
1. 資深軟體工程師上的資料結構。
資料結構不是用來考試的,給你真正用軟體設計思維思考資料結構設計。
2. 重視實作的方法。
資料結構不能只會觀念性描述, 還必須知道每一個結構定義完之後, 該如何具體實現, 每一個實現的方法,還能分析它的好壞 (複雜度分析)。
課程提供的資料結構範例程式,可以使用任何C編譯器進行編譯,例如Code Blocks 、windows Dev-C++ 或 Linux 下的 GNU C 編譯器 (gcc)
章節架構:
Part1-資料結構導論
Part2-ADT 抽象資料型別設計方法
Part3-Set 集合ADT設計
Part4-Stack堆疊
► 堆疊ADT設計
► 堆疊軟體應用
Part5-Queue 佇列
► 佇列ADT設計
► 環狀佇列ADT設計
► 堆疊軟體應用
Part6-Linked List鏈結串列
► 動態配置記憶體
► 單向鏈結串列
► 環狀鏈結串列
► 使用C鏈結串列的各式操作-串列串接、串列反轉
Part7-Tree樹狀結構
► 二元樹簡介
► 樹ADT設計
►二元搜尋樹(Binary Search Tree)
►建立(插入)節點、搜尋節點、刪除節
Part8-Graph 圖形結構
►圖ADT設計
►圖的表示法
►建構圖、刪除邊、刪除頂點
►圖走訪
►DFS
►BFS
►軟體應用- 求最短路徑
►Dijkstra 演算法
►Bellman-Ford演算法
Part9-Search資料搜尋
► 線性搜尋 (Linear Search)
► 二元搜尋 (Binary Search)
► 雜湊搜尋法 (Hashing)
Part10-Sorting資料排序
► 氣泡排序(bubble sort)
► 選擇排序(selection sort)
► 插入排序(insertion sort)
► 快速排序(quick sort)
► 合併排序(merge sort)
► 桶排序(bucket sort)