Вы находитесь на странице: 1из 6

Cấu trúc dữ liệu

ĐẠI HỌC MỞ TP. HỒ CHÍ MINH


KHOA CÔNG NGHỆ THÔNG TIN
---------------------------------------

ĐỀ CƯƠNG MÔN HỌC


MÔN HỌC: CẤU TRÚC DỮ LIỆU

I. Thông tin về giảng viên


1. Giảng viên: Nguyễn Hòa
2. Học vị: Thạc Sĩ
3. Địa chỉ liên lạc: Khoa Công Nghệ Thông Tin , Đại Học Mở
TP.HCM
II. Thông tin tổng quát về môn học
1. Tên môn học: Cấu trúc dữ liệu
2. Mục đích yêu cầu
• Sinh viên phải nắm được cách thức xây dựng các cấu trúc dữ
liệu cơ bản cũng như các thao tác (phép toán) tương ứng trên
các cấu trúc dữ liệu này.
• Nắm được ý tưởng, phương pháp thiết kế và nội dung hình
thức các giải thuật.
• Thấy được tính hiệu quả khác nhau của mỗi loại cấu trúc dữ
liệu khi dùng chúng để lưu trữ, tổ chức, truy xuất và sửa đổi
thông tin trong các hệ thống dữ liệu cụ thể.
• Biểu diễn và hiện thực được các cấu trúc dữ liệu cơ bản và các
phép toán (thuật toán) tương ứng trong C++.
• Lựa chọn được các mô hình và cấu trúc dữ liệu cũng như giải
thuật tương ứng cho các bài toán thực tế.
3. Số đơn vị học trình: 4.5
4. Phân bố thời gian: 45:00:45
5. Kiến thức căn bản cần học trước:
• Kỹ thuật lập trình
6. Hình thức giảng dạy: Giảng lý thuyết trên lớp và thực hành
trên phòng máy
7. Giáo trình và tài liệu:
a) Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest.
Introduction to Algorithms, 2001
b) A.V. Aho, J. E. Hopcroft, J. D. Ullman. Data Structures And
Algorithms, Addison-Wesley Publishing Company, 1985
7. Các công cụ hỗ trợ: Projector + computer phục vụ cho
giảng bài
III. Nội dung môn học: bao gồm 6 chương
Chương 1- Thuật toán và phân tích thuật toán
• Số tiết dự kiến: 4 tiết lý thuyết
• Mục tiêu, yêu cầu:

1
Cấu trúc dữ liệu

♦ Nắm vững khái niệm và các tính chất của thuật toán.
♦ Nắm được ngôn ngữ và các qui ước mã giả để biểu diễn thuật
toán.
♦ Hiểu được ý nghĩa và hiểu quả của việc hiện thực giải thuật
trên máy tính
♦ Nắm được phương pháp và kỹ thuật phân tích độ phức tạp về
thời gian của thuật toán
• Chi tiết các đề mục của chương :
1.1 Thuật toán
1.1.1 Khái niệm thuật toán
1.1.2 Thuật toán như là một kỹ thuật
1.1.3 sắp xếp chèn
1.1.4 Các qui ước mã giả
1.2 Phân tích thuật toán
1.2.1 Phân tích sắp xếp chèn
1.2.2 Phân tích trường hợp xấu nhất và trung bình
1.2.3 Bậc của tốc độ tăng
• Kiến thức cốt lỏi cần nắm vững: khái niệm, tính chất và kỹ thuật
phân tích thời gian chạy của thuật toán
• Phương pháp giảng dạy: giảng lý thuyết
• Tài liệu tham khảo: Tài liệu a), chương 1, 2. Tài liệu b), chương 1.
• Câu hỏi và bài tập: Đính kèm với slide phát cho sinh viên

Chương 2- Tốc độ tăng của hàm


• Số tiết dự kiến: 3 tiết lý thuyết
• Mục tiêu, yêu cầu:
♦ Nắm vững các khái niệm, ý nghĩa, ký hiệu tiệm cận của một
hàm.
♦ Nắm được các qui ước và các phép toán đơn giản đối với tiệm
cận.
♦ Sử dụng được các ký hiệu tiệm cận để biểu diễn thời gian chạy
của thuật toán.
• Chi tiết các đề mục của chương :
1.1 Ký hiệu tiệm cận
1.1.1 Ký hiệu Θ
1.1.2 Ký hiệu O
1.1.3 Ký hiệu Ω
1.1.4 Ký hiệu tiệm cận trong phương trình
1.2 Một số ví dụ về phân tích thuật toán (merge sort, tính ex,…)
• Kiến thức cốt lỏi cần nắm vững: khái niệm và ký hiệu tiệm cận
• Phương pháp giảng dạy: giảng lý thuyết
• Tài liệu tham khảo: Tài liệu a), chương 2, 3. Tài liệu b), chương 1.

2
Cấu trúc dữ liệu

• Câu hỏi và bài tập: Đính kèm với slide phát cho sinh viên

Chương 3- Các cấu trúc dữ liệu cơ bản


• Số tiết dự kiến: 12 tiết lý thuyết+15 thực hành
• Mục tiêu, yêu cầu:
♦ Nắm vững khái niệm và đặc tính của các mô hình và cấu trúc
dữ liệu cơ bản như ngăn xếp, hàng đợi, các loại danh sách
liên kết.
♦ Nắm được các thuật toán hiện thực các thao tác trên các cấu
trúc dữ liệu cơ bản
♦ Phân tích được thời gian thực hiện các thao tác trên các cấu
trúc dữ liệu cơ bản này.
♦ Thấy được tính hiệu quả khác nhau của mỗi loại cấu trúc dữ
liệu khi dùng chúng để lưu trữ, tổ chức, truy xuất và sửa đổi
thông tin
♦ Biểu diễn và hiện thực được các cấu trúc dữ liệu và các phép
toán (thuật toán) tương ứng trong C++.
♦ Lựa chọn được các mô hình và cấu trúc dữ liệu thích hợp khi
giải quyết các bài toán thực tế.
• Chi tiết các đề mục của chương :
1.1 Ngăn xếp và hàng đợi
1.1.1 Ngăn xếp
1.1.2 Hàng đợi
1.2 Danh sách liên kết đơn
1.2.1 Tìm kiếm trên danh sách liên kết đơn
1.2.2 Chèn vào danh sách liên kết đơn
1.2.3 Xoá khỏi danh sách liên kết đơn
1.3 Danh sách liên kết kép
1.3.1 Tìm kiếm trên danh sách liên kết kép
1.3.2 Chèn vào danh sách liên kết kép
1.3.3 Xoá khỏi danh sách liên kết kép
1.3.4 Phần tử cầm canh (sentinel)
1.4 Biểu diễn cây có gốc
1.4.1 Cây nhị phân
1.4.2 Cây có nhánh không hạn chế
• Kiến thức cốt lỏi cần nắm vững: khái niệm, tính chất, thuật toán
và cách thức hiện thực các cấu trúc dữ liệu trên máy tính
• Phương pháp giảng dạy: giảng lý thuyết + thực hành trên máy
tính
• Tài liệu tham khảo: Tài liệu a), chương 10
• Câu hỏi và bài tập: Đính kèm với slide phát cho sinh viên

Chương 4- Bảng băm


• Số tiết dự kiến: 10 tiết lý thuyết + 10 thực hành

3
Cấu trúc dữ liệu

• Mục tiêu, yêu cầu:


♦ Nắm vững khái niệm và đặc tính, ý nghĩa của mô hình và cấu
trúc dữ liệu bảng băm.
♦ Nắm vững các phương pháp giải quyết dụng độ trên bảng
băm
♦ Nắm vững các phương pháp xây dựng hàm băm.
♦ Nắm được các thuật giải hiện thực các thao tác trên bảng
băm.
♦ Phân biệt được tính hiệu quả khác nhau đối với từng phương
pháp giải quyết đụng độ cũng như cách thức lựa chọn hàm
băm khác nhau.
♦ Hiểu được bảng băm là cấu trúc dữ liệu thích hợp nhất để lưu
trữ từ điển
♦ Biểu diễn và hiện thực được cấu trúc dữ liệu bảng băm trong
C++
♦ Lựa chọn được mô hình và cấu trúc dữ liệu bảng băm với
phương pháp giải quyết đụng độ thích hợp khi làm việc với
các bài toán thực tế.
• Chi tiết các đề mục của chương :
1.1 Bảng địa chỉ trực tiếp
1.2 Bảng băm
1.2.1 Giải quyết đụng độ bằng dây xích
1.2.2 Phân tích băm theo dây xích
1.3 Hàm băm
1.3.1 Như thế nào là một hàm băm tốt
1.3.2 diễn dịch khoá như một số tự nhiên
1.3.3 Phương pháp chia
1.3.4 Phương pháp nhân
1.4 Giải quyết đụng độ bằng phương pháp địa chỉ mở
1.4.1 Khái niệm
1.4.2 Dò tuyến tính
1.4.3 Dò bậc hai
1.4.4 băm kép
1.4.5 Phân tích băm địa chỉ mở
• Kiến thức cốt lỏi cần nắm vững: khái niệm, tính chất, thuật toán
và cách thức hiện thực cấu trúc dữ liệu bảng băm trên máy tính
• Phương pháp giảng dạy: giảng lý thuyết + thực hành trên máy
tính
• Tài liệu tham khảo: Tài liệu a), chương 11
• Câu hỏi và bài tập: Đính kèm với slide phát cho sinh viên

Chương 5- Cây nhị phân tìm kiếm


• Số tiết dự kiến: 8 tiết lý thuyết+12 thực hành
• Mục tiêu, yêu cầu:

4
Cấu trúc dữ liệu

♦ Nắm vững khái niệm, đặc tính và ý nghĩa của mô hình và cấu
trúc dữ liệu cây nhị phân tìm kiếm.
♦ Nắm được các thuật giải hiện thực các thao tác trên cây nhị
phân tìm kiếm.
♦ Phân tích được thời gian thực hiện các thao tác trên cây nhị
phân tìm kiếm
♦ Hiểu được cây nhị phân tìm kiếm được tạo một cách ngẩu
nhiên là cân bằng
♦ Biểu diễn và hiện thực được cấu trúc dữ liệu cây nhị phân tìm
kiếm trong C++
♦ Thấy được tính hiệu quả của cây nhị phân tìm kiếm so với
danh sách liên kết (nếu dùng để lưu trữ và truy xuất khoá),
quyết định chọn hay không cấu trúc dữ liệu cây nhị phân tìm
kiếm khi lưu trữ một tập động trong các bài toán thực tế.
• Chi tiết các đề mục của chương :
1.1 Cây nhị phân tìm kiếm là gì
1.2 Truy vấn trên cây nhị phân tìm kiếm
1.2.1 Tìm kiếm
1.2.2 Phần tử có khoá nhỏ nhất, lớn nhất
1.2.3 Phần tử đi sau, đi trước một phân tử
1.3 Chèn và xoá
1.3.1 Chèn vào cây một phần tử
1.3.2 Xoá khỏi cây một phần tử
1.4 Cây nhị phân tìm kiếm được xây dựng một cách ngẩu nhiên
• Kiến thức cốt lỏi cần nắm vững: khái niệm, tính chất, thuật toán
và cách thức hiện thực cấu trúc dữ liệu cây nhị phân tìm kiếm
trên máy tính
• Phương pháp giảng dạy: giảng lý thuyết + thực hành trên máy
tính
• Tài liệu tham khảo: Tài liệu a), chương 12
• Câu hỏi và bài tập: Đính kèm với slide phát cho sinh viên

Chương 6- B-cây
• Số tiết dự kiến: 8 tiết lý thuyết +8 thực hành
• Mục tiêu, yêu cầu:
♦ Nắm vững khái niệm, đặc tính và ý nghĩa của mô hình và cấu
trúc dữ liệu B-cây.
♦ Nắm được các thuật giải hiện thực các thao tác trên B-cây.
♦ Hiểu được B-cây như là một trong các cấu trúc dữ liệu tốt nhất
cho mục đích tổ chức, lưu trữ, truy xuất và sử đổi dữ liệu được
lưu trữ trên bộ nhớ ngoài.
♦ Phân tích được thời gian thực hiện các thao tác trên B-cây
♦ Biểu diễn và hiện thực được cấu trúc dữ liệu B-cây trong C++
• Chi tiết các đề mục của chương :

5
Cấu trúc dữ liệu

1.1Khái niệm B-cây


1.1.1 Định nghĩa B-cây
1.1.2 Chiều cao của B-cây
1.2 Các thao tác cơ bản trên B-cây
1.2.1 Tìm kiếm trên B-cây
1.2.2 Tạo một B-cây rỗng
1.2.3 Tách một node trong B-cây
1.2.4 Chèn một khoá vào B-cây
1.3 Xoá một khoá khỏi B-cây
• Kiến thức cốt lỏi cần nắm vững: khái niệm, tính chất, thuật toán
và cách thức hiện thực cấu trúc dữ liệu B-cây
• Phương pháp giảng dạy: giảng lý thuyết + thực hành trên máy
tính
• Tài liệu tham khảo: Tài liệu a), chương 18
• Câu hỏi và bài tập: Đính kèm với slide phát cho sinh viên

III. Đánh giá kết quả học tập


1. Thi thực hành trên máy cuối kỳ: 30%
2. Thi lý thuyết cuối kỳ: 70%

Вам также может понравиться