【7/31】114學年度第2學期研究生論文口試結束Thesis Defense Ends   ♠   【8/1】115學年度第1學期開始 2026 Fall Semester Begins   ♠   【8/3】暑期班申請課程停修開始(至7日止) Summer Session Withdrawal (8/3-   ♠   【8/18】115學年度入學各級新生、轉學生選課(至20日止) Course Selection for   ♠   【8/21】暑期班結束 Summer Session Ends   ♠   【9/1】教師送繳115學年度暑碩專班成績截止   ♠   【9/1-2】新生領航營(至2日止)   ♠   【9/3-18】受理校際選課(至18日止) Inter-School Selection (9/3-9/18)   ♠   【9/4-7】受理就學貸款申請(4日、7日兩天)   ♠   【9/3-18】受理校際選課(至18日止) Inter-School Selection (9/3-9/18)   ♠   【9/4-7】受理就學貸款申請(4日、7日兩天)   ♠   【9/7】全校各級學生上課開始、註冊日 1. Class Begin 2. Registration   ♠   【9/7-30】弱勢助學金申請(至30日止)   ♠   【9/7】生輔組校內外獎學金申請(依 生輔組公告辦理)   ♠   【9/25】中秋節 Mid-Autumn Festival (no class)   ♠   【9/28】教師節 Teacher's Day (no class)   ♠   【9/29-11/20】期中教學意見反映(至11月20日止) Mid-term Feedback on Teaching   ♠   【10/9-10】國慶日補假 Holiday-Double Tenth Day (no class)國慶日 Double Tenth Day (no class)   ♠   【10/19-12/4】期中成績預警開始(至12 月4日止) Academic Warning System Starts   ♠   【11/11】全校運動大會(停課一天) Sports Day   ♠   【11/27-12/20】教學意見調查開始(至12月20日止) Online Course Evaluation (11/27-   ♠   【12/21-24】期末考試開始(至24日止) Final Exams   ♠   【12/25】行憲紀念日 Constitution Day   ♠   【12/28】寒假開始 Winter Break Begins   ♠  

11101 工程學群 teacher

資料結構導論

韓永楷 教授

資訊工程學系

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

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

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

News

最新公告

2026-08-13 【限額急徵】化學系陳貴通教授「分析化學一」拍攝&剪輯工讀生3名 !
2026-08-11 物理系黃晟維教授 量子科技實驗 2 : 理論|影片板書筆記
2026-07-28 台灣開放式課程聯盟創用CC4.0中英文版授權書
2026-07-28 蔡英俊教授.焦元溥教授|鋼琴少女彈什麼?──用音樂閱讀《窗外有藍天》
2026-07-28 TOCEC攜手均一教育平台 推動數位學習新未來
2026-07-28 善用 AI 工具,打造高效率學術生活──10 大大學生與研究生必備 AI 幫手推薦 ! (20250825)
2026-07-28 物理系張存續教授微波物理與應用一|第1.2講義資料
2026-07-28 恭賀! 資工系王俊堯教授工程數學開放式課程|榮獲2025臺灣開放教育卓越獎OCW組特優!!
2026-05-18 【暑期工讀招募】開放式課程誠徵影片剪輯與資訊工讀生至6/15截止!
2026-05-13 卓越,從種下種子開始! 5/11–6/19|2026 OE Awards
2026-03-10 李炯霆教授設計自動化一|以精密佈局描繪設計的秩序
2026-01-08 【OEGlobal 2026 論文徵稿】 MIT 麻省理工學院邀請您打造更開放且公平的未來!
2026-01-08 白先勇教授|文學改編電影從《玉卿嫂》改編講起
2025-11-28 金守民教授 | 莎士比亞|Shakespeare 7 Hamlet Traged
2025-11-11 11/21-12/14課務組教學意見調查,請您踴躍填卷!

Syllabus

课程大纲

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

 

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

Week 1Getting 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 2Sorting 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 3Basic 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 4Graph 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 5Searching 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 6Searching 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