11101 工程學群 資訊工程學系

資料結構導論

韓永楷 教授

資訊工程學系

國立清華大學資訊工程學系    特聘教授

香港大學計算機科學系    博士

【經歷】 國立清華大學97、103、110傑出教學獎
【網站】 https://scholar.google.com/citations?user=7bMQ4KAAAAAJ&hl=en
【授課】 料結構、離散數學、隨機演算法
【專長】 資料結構、演算法

News

最新公告

2024-02-19 【魅力專欄】鄉民最愛迷因網站梗圖倉庫-用鄉民梗激發您的學習力 !
2024-02-19 2020-2023 年度熱門課程 : 資工系周志遠教授簡介
2024-02-15 【11202 開放式課程工讀招募】沒有穩定的工作、只有穩定的能力,誠摯地歡迎您加入我們的行列!!
2024-02-07 【2024開放式課程*超猛筆記大募集】我們深信學習不是少數人的事,而是所有人的事,敬邀您的熱血參與!!!
2024-01-17 恭賀 數學系程守慶教授獲聘為113年度「理學院終身榮譽講座教授」!
2024-01-15 【分享是最偉大的學習】清華大學電機系〡馬席彬教授專訪!
2024-01-12 恭賀 數學系程守慶教授獲聘為113年度「理學院終身榮譽講座教授」!
2024-01-09 【2023/12/27首頁故事:動機系葉廷仁特聘教授清華學生團隊打造自動平衡摩托車】
2024-01-09 【12/27 白先勇與吳素君教授〡天倫之歌-《孽子》2020舞台劇的幕前、幕後演講活動分享】
2024-01-09 【12/27白先勇清華文學講座:大師月系列講座】白先勇與吳素君教授〡天倫之歌-《孽子》2020舞台劇的幕前幕後,敬邀您的熱情參與!
2023-12-28 2024.2/15-2/16 教學助理研習營活動,敬邀您的熱情參加!
2023-12-18 10920趙啟超教授離散數學作業與解答!
2023-12-18 10920趙啟超教授離散數學版書上架通知!!謝謝大家!!
2023-11-28 「2023白先勇清華文學講座:文化的記憶與重建」將於年底迎來「大師月」系列課程, 由四組重量級嘉賓擔任主講,講座訊息請點入閱讀。
2023-11-20 【2023/12/8-2024/1/2教學助理教學意見調查】期中期末大爆炸,助教考卷改到炸!若您曾受惠於TA,匿名填卷表感謝,愛的鼓勵兩相悅!!

Syllabus

課程大綱

「資料結構」是學習以聰明的方法去儲存資料,使得我們在有需要的時候能夠快速有效地把資料擷取....

 

 課程說明
         Course Description 
        「資料結構」是學習以聰明的方法去儲存資料,使得我們在有需要的時候能夠快速有效地把資料擷取。例如我們希望把學生某一科的考試成績整理,使得我們能隨時查詢任何學生的排名。為了節省查詢的時間,我們或許會把學生們的成績從高至低排好,而不會以隨意的順序排列。〈對此問題,其實還有一個更好的方法呢!〉

Week 1 Getting Started、Heap
 
● Introduction
● Sorting 的方法 & 分析
● Exercise - Insertion Sort
● Sorting 的分析
● Exercise - Merge Sort
● Growth of Functions
● Exercise - Growth of Functions
● Insertion Sort 上機
● Heap-1
● Exercise - Heap I
● Heap-2
● Exercise - Heap II
Week 2 Sorting Lower Bound、Basic Data Structures I (List, Queue, Stack)
 
● Lower Bound on Comparison Sorts - 1
● Exercise - Lower Bound on Comparison Sorts I
● Lower Bound on Comparison Sorts - 2
● Exercise - Lower Bound on Comparison Sorts II
● Pointers in C
● Basic Data Structure Ⅰ - 1
● Basic Data Structure Ⅰ - 2
● Exercise - Basic Data Structure I
● Josephus 上機
● Exercise - Josephus Problem
● Balanced 括號上機
● Exercise - Balanced Parentheses
● List 上機_insert
● List 上機_delete 
Week 3 Basic Data Structures II (Tree, Graph)、Graph and Tree Traversals I 

(BFS, DFS)
 
● Tree and Graph
● Exercise - Tree
● Breadth First Search
● Exercise - Breadth First Search
● Depth First Search
● Exercise - Depth First Search
● Depth First Search 分析
Week 4 Graph and Tree Traversals II (Tree Traversals, Expression Tree )、
 Graph and Tree Traversals III (Topological Sort)
 
● Tree Traversal
● Exercise - Tree Traversal
● Expression Tree & Postfix Notation of an Expression
● Infix-Postfix Coversion
● Exercise - Expression
● Topological Sort
● Topological Sort 證明
● Exercise - Topological Sort
● Two IQ Questions
● Exercise - Josephus Problem Revisited 
Week 5 Searching Set Data I (Binary Search Tree)
 
● Binary Search Tree
● Binary Search Tree 實作 (Min / Max)
● Binary Search Tree 實作 (Search / Predecessor)
● Binary Search Tree 實作 (Insert / Delete)
● Binary Search Tree 實作 (Delete) - Case 1 & 2
● Binary Search Tree 實作 (Delete) - Case 3
● BST上機_insert
● BST上機_delete_1
● BST上機_delete_2
● BST上機 - 3
● Exercise - Binary Search Tree 
Week 6 Searching Set Data II (AVL Tree)
 
● AVL Tree
● AVL Tree - Rotation
● AVL Tree - Insertion 的情形
● AVL Tree - Insertion實作 Case 2.2
● AVL Tree - Insertion 實作 Case 2.3
● AVL Tree Insert 補充 & Delete
● Augmenting Data Structure
● Exercise - AVL Tree 
Week 7  Searching Set Data III (B-Tree)
 
● B-tree EM Model
● B-tree insert
● B-tree delete
● Exercise - B Tree I
● Exercise - B Tree II 
Week 8  Hashing (Chaining, Open Addressing)、Suffix Tree and Suffix Array
 
● Hashing
● Common Hash Function
● Exercise - Hashing
● Indexing Strings & Suffix Array
● Exercise - Suffix Array
   
 
 
指定用書
        Text Book 
 Introuction to Algorithms

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
♠ Fundamentals of Data Structures in C++

Ellis Horowitz, Sartaj Sahni, Dinesh Mehta
 

參考書籍
        References
♠ Algorithms in C++Robert Sedgewick
 

先修課程
        Advanced Placement 
  C/C++ Programming
   

 

Keyword

關鍵字

  • 英文課程
  • Offered in English
  • 資料結構導論
  • Introduction to Data Structure
  • Sorting Lower Bound
  • Searching Set Data
  • Hashing
  • Suffix Tree and Suffix Array