Overview of Course
Overview of Course
➢Set
❖Concept of set
❖Operations: Union, Minus, intersection
❖C/C++ Library
➢Map
❖Concept of map
❖Operations: get, put, remove
❖C/C++ Library
Data Structures and Algorithms 9
Lecture 4
set, map and hash table
➢Hash table
❖Concept of hash function
❖Collisions and collision handling
❖C/C++ Library
➢Algorithm concept
➢Characteristics of an algorithm
➢Algorithm designing strategies:
basic algorithms, Bruce-force,
Greedy, divide and conquer,
Dynamic programming, graph
theories, string/text algorithms
➢Travelling algorithms
❖Breath-First Search (BFS)
❖Depth-First Search (DFS)
➢Definition of string
➢String matching
❖Definition
❖Algorithms: Naïve and Knuth Morris
Pratt algorithms
➢Regular expression
❖Definition
❖Examples
Data Structures and Algorithms 19
Learning methodology
➢ Theoretical learning
➢ Practical learning:
❖Divided to groups to practice in practical
rooms (G2 building)
❖Programing language: C/C++ (or others)
❖Implement basic structures and
algorithms
❖Tested on standard inputs and output
❖Solving small projects
➢ Self-study: student using the
CodePower system (codepower.vn) to
self
Data practice
Structures and Algorithms 20
Requirements for the
course
➢Prerequisite subject: THCS 4;
advanced programming language
(prefer C/C++)
➢Attending to class and practical
rooms (90%)
➢Assignments:
❖Middle assignment: on practical
rooms
❖Structures
Data Finalandexam:
Algorithms paper based exam 21
Materials
➢Cấu trúc dữ liệu và giải thuật:
PGS.TS. Đinh Mạnh Tường
➢Introduction to Algorithms, Second
Edition Thomas H. Cormen
➢Fundamentals of Data Structures
by Ellis Horowitz and Sartaj Sahni
Addison Wesley –The Practice of
programming How to program C+
+
Data Structures and Algorithms 22