This course introduces the basic concepts of data structures. A data structure is

a particular way of storing and organizing data in a computer so that the data can

be managed and used efficiently. Data structures are particular critical when

manipulating large amounts of data and they play an important role in developing

efficient algorithms to solve problems. In view of the importance of data

structures, modern programming languages, such as C++, emphasize data structures,

rather than procedures, as the key organizing factor in software design. Their

object-oriented approach to software development makes them very suitable for

studying data structures. In this course, we will use C++ as the vehicle to study

various data structures, including arrays, stacks, queues, linked list, trees, and

graphs.

Prerequisite Courses: C/C++ Programming Language

二、指定用書(Text Books)

Fundamentals of Data Structures in C++, 2nd ed., by Ellis Horowitz,

Sartaj Sahni, and Dinesh Mehta.

三、參考書籍(References)

Introduction to Algorithms, 3rd ed., by Cormen et al.

C++ reference (http://www.cplusplus.com/reference/)

四、教學方式(Teaching Method)

Lectures, Quiz

五、教學進度(Syllabus)

- Introduction to C++ and Algorithm

- Arrays

- Stacks and Queues

- Linked Lists

- Trees

- Graphs

- Sorting

- Hashing

六、成績考核(Evaluation)

(以上課講義為準，以下僅供參考)

- Program Assignments: 30%

- Online Lab Quizzes: 15%

- Midterm Exam: 20%

- Final Project: 25%

- 程式檢定: 3%

- Class Participation: 7%

七、可連結之網頁位址

ILMS (http://lms.nthu.edu.tw/)

http://www.cs.nthu.edu.tw/~king/courses/cs2351