IoT

 

IT E Learning

 

課程名稱:資料結構精修
資料結構?演算法?
為了設計出一個有效率的演算法來解決問題。通常得事先將要處理的原始資料進行一些特定處理或擺放,將有助於整個演算法的效能提升。
計算機軟體對於資料的處理,首當設計資料結構,該記錄那些資料、要用什麼方式來儲存,接著對於這群資料該如何進行新增、插入、刪除、搜尋等操作。
資料結構這門學科旨在說明計算機軟體有那些常用的資料結構,如Array, Linked List, Stack, Queue, Tree, Graph等,而對應這些不同的資料結構必然會有不同的操作方式…
課程目標

資料結構(Data Structures)是資訊學科中的核心課程之一,也是嵌入式軟體設計的基礎課程。「資料結構精修班」教授軟體開發者必修的資料結構和演算法,讓你思考程式的執行效率。

1. 不僅學會撰寫程式並能夠清楚掌握程式的重要觀念,了解”軟體程式=演算法+資料結構。
2. 能熟悉不同資料結構的設計模式。
3. 能了解軟體程式在何時會應用到這些資料結構。
4. 藉由排序與搜尋演算法理解來討論Big-O演算法效能分析。 

課程特色

1. 資深軟體工程師上的資料結構。
    資料結構不是用來考試的,給你真正用軟體設計思維思考資料結構設計。
2. 重視實作的方法。
    資料結構不能只會觀念性描述, 還必須知道每一個結構定義完之後, 該如何具體實現, 每一個實現的方法,還能分析它的好壞 (複雜度分析)。

 

課程說明

課程提供的資料結構範例程式,可以使用任何C編譯器進行編譯,例如免費的 windows Dev-C++ 或 Linux 下的 GNU C 編譯器 (gcc)
  

  • 章節一                   資料結構導論
  • 章節二                   ADT 抽象資料型別設計方法
  • 章節三                   Set 集合 ADT設計
  • 章節四                   Stack堆疊
    堆疊ADT設計
    堆疊軟體應用
  • 章節五                   Queue 佇列
    佇列 ADT設計
    環狀佇列ADT設計
    堆疊軟體應用
  • 章節六                   Linked List鏈結串列
    動態配置記憶體
    單向鏈結串列
    環狀鏈結串列
    鏈結串列的各式操作-串列串接、串列反轉
  • 章節七                   Tree樹狀結構
    二元樹簡介
    樹ADT設計
    二元搜尋樹(Binary Search Tree)
       • 建立(插入)節點、搜尋節點、刪除節點
  • 章節八                   Graph 圖形結構
    圖ADT 設計
        • 圖的表示法
        • 建構圖、刪除邊、刪除頂點
    圖走訪
         • DFS
         • BFS
    軟體應用- 求最短路徑
         • Dijkstra 演算法
         • Bellman-Ford演算法
  • 章節九                   Search資料搜尋
    線性搜尋 (Linear Search)
    二元搜尋 (Binary Search)
    雜湊搜尋法 (Hashing)
  • 章節十                   Sorting資料排序
    氣泡排序(bubble sort)
    選擇排序(selection sort)
    插入排序(insertion sort)
    快速排序(quick sort)
    合併排序(merge sort)
    桶排序(bucket sort)
課程實錄

 

適合對象

1. 具備程式設計基礎,熟悉C語言者尤佳 (範例程式碼目前僅提供C程式版本)。
2. 想要從事嵌入式軟體開發,但缺乏良好系統設計概念者。 

職涯方向

嵌入式設計師 │韌體工程師 │資訊家電設計師│網路應用程式設計│Linux平台驅動程式

更多延伸學習

精修C語言 | Python程式設計 | MCU韌體設計 | Linux驅動程式