Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (43.2 KB, 4 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
1
ĐẠI HỌC ĐÀ LẠT
<i>Khoa: Tốn - Tin </i>
1. Tên học phần: <b>CẤU TRÚC DỮ LIỆU VAØ GIẢI THUẬT 1</b> Mã số: TH
2. Số đơn vị học trình: 5 (3 LT + 2 TH)
3. Trình độ: dành cho sinh viên năm thứ 2
4. Phân bố thời gian:
- Lên lớp: 3 tín chỉ
- Thực hành phịng máy: 2 tín chỉ
5. Điều kiện tiên quyết: Nhập mơn lập trình
6. Mơ tả vắn tắt nội dung học phần:
Giới thiệu cho học viên các kiến thức căn bản về các cấu trúc dữ liệu cơ bản
tĩnh cũng như động (thông qua danh sách liên kết và cây). Trên cơ sở đó, cung
cấp cho học viên các kiến thức về các thuật toán cơ bản gắn liền với các cấu
trúc dữ liệu đó như sắp xếp và tìm kiếm ở bộ nhớ trong cũng như so sánh độ
phức tạp của các thuật tốn này. Ngơn ngữ lập trình được chọn để minh họa
các kiến thức trên là C++.
7. Nhiệm vụ của sinh viên: học viên cần tham dự đầy đủ các buổi
- Lên lớp: lý thuyết và giải bài tập trên lớp
- Bài tập: thực hành tại phòng máy
8. Tài liệu học tập:
- Sách, giáo trình chính: giáo trình “Cấu trúc dữ liệu và thuật toán 1”
- Sách tham khảo:
[1] NIKLAUS WIRTH: Cấu trúc dữ liệu + Giải thuật = Chương trình
(Nguyễn Quốc Cường dịch). NXB ĐH và THCN – 1991
[2] LARRY N. HOFF, SANFORD LEESTMA: Lập trình nâng cao bằng
Pascal với các cấu trúc dữ liệu. Bản dịch của Lê Minh Trung. Công ty Scitec
- 1991.
[3] NGUYỄN TRUNG TRỰC: Cấu trúc dữ liệu. Trung tâm điện toán, trường
ĐH Bách khoa TP. HCM – 1992.
[4] ĐỖ XUÂN LÔI: Cấu trúc dữ liệu và thuật toán. NXB KHKT - 1995.
[5] TRẦN HẠNH NHI & DƯƠNG ANH ĐỨC: Nhập môn cấu trúc dữ liệu và
thuật tốn. Khoa Cơng nghệ thông tin, ĐH KHTN TP HCM – 2000.
[6] DONALD KNUTH:The Art of Programming. (vol. 1: Fundamental
Algorithms, vol. 3: Sorting and Searching). Addition Wesley Puplishing
Company - 1973.
2
9. Tiêu chuẩn đánh giá sinh viên
- Thi thực hành giữa hoặc cuối học kỳ
- Thi viết cuối học kỳ
- Khác: đối với các sinh viên khá - giỏi có thể đăng ký với giáo viên để làm
tiểu luận (bài tập lớn), giáo viên sẽ đánh giá trực tiếp sinh viên cả về mặt lý
10. Thang điểm:
- Đối với sinh viên bình thường:
. Điểm thi thực hành giữa hoặc cuối học kỳ: khoảng 30 - 40%
. Điểm thi viết cuối học kỳ: khoảng 70 - 60%
- Đối với sinh viên làm tiểu luận hay bài tập lớn: sinh viên không phải thi cuối
kỳ và lấy điểm tiểu luận làm điểm kết quả cuối cùng của học phần.
11. Mục tiêu của học phần
Giáo trình này nhằm cung cấp cho sinh viên các kiến thức căn bản về các cấu
trúc dữ liệu cơ sở có cấu trúc tĩnh và động (thông qua danh sách liên kết và
cây, chủ yếu là cây nhị phân) cũng như các thuật toán cơ bản liên quan đến
chúng như sắp xếp, tìm kiếm ở bộ nhớ trong. Để có thể nắm bắt các kiến thức
trình bày học phần này, sinh viên cần nắm được các kiến thức về tin học đại
cương, nhập mơn lập trình. Các kiến thức này sẽ tạo điều kiện cho học viên
tiếp tục dễ dàng nắm bắt các kiến thức các học phần tin học về sau như: cấu
trúc dữ liệu và thuật toán nâng cao, thiết kế và đánh giá thuật tốn, đồ hoạ, hệ
điều hành, trí tuệ nhân tạo, ...
12. Nội dung chi tiết học phần:
<b>Chương I </b>
<b>GIỚI THIỆU CẤU TRÚC DỮ LIỆU </b>
<b>VÀ PHÂN TÍCH THUẬT TOÁN </b>
I.2. Thiết kế và phân tích thuật toán
I.2.1. Thiết kế thuật toán theo phương pháp Top-Down
I.2.2. Phân tích thuật tốn và độ phức tạp của thuật tốn
<b>Chương II </b>
<b>TÌM KIẾM VAØ SẮP XẾP </b>
II.1. Giới thiệu về sắp xếp và tìm kiếm
II.1.1. Định nghóa sắp xếp
II.1.2. Định nghóa phép tìm kiếm
II.2. Phương pháp tìm kiếm trong
3
II.3.1. Các phương pháp sắp xếp chọn và HeapSort
II.3.2. Các phương pháp chèn và ShellSort
II.3.3. Các phương pháp đổi chỗ và QuickSort
II.3.4. Các Phương pháp sắp xếp trộn và theo cơ số
II.3.5. So sánh các phương pháp sắp xếp
<b>Chương III </b>
<b>CẤU TRÚC DANH SÁCH LIÊN KẾT </b>
III.1. Giới thiệu đối tượng dữ liệu con trỏ
III.1.1. So sánh cấu trúc dữ liệu tĩnh và cấu trúc dữ liệu động
III.1.2. Định nghĩa
III.1.3. Khai baùo
III.1.4. Cấp phát và thu hồi vùng nhớ
III.2. Danh sách liên kết (DSLK)
III.2.1. Định nghóa DSLK
III.2.2. Cài đặt DSLK
III.2.3. DSLK khơng có nút câm
III.3. Vài ứng dụng của DSLK
III.3.1. Ngăn xếp
a. Định nghóa và cài đặt ngăn xếp
b. Các phép toán cơ bản trên ngăn xếp
c. Một số ứng dụng của ngăn xếp
III.3.2. Hàng đợi
a. Định nghĩa và cài đặt hàng đợi
b. Các phép toán cơ bản trên hàng đợi
c. Ứng dụng của hàng đợi
III.4. Các loại DSLK khác
III.4.1. DSLK có nút câm
III.4.2. DSLK vịng
III.4.5. Một số ứng dụng khác của DSLK
a. DS có thứ tự và DS tổ chức lại
b. Cài đặt tập hợp bằng DSLK
c. Cài đặt đa thức rời rạc bằng DSLK
d. Cài đặt ma trận thưa bằng DSLK
e. Sắp xếp topology
4
IV.1.1. Định nghóa cây
IV.1.2. Các khái niệm khác
IV.2. Cây nhị phân
IV.2.1. Định nghóa
IV.2.2. Vài tính chất của cây nhị phân
IV.2.3. Biểu diễn cây nhị phân
IV.2.4. Duyệt cây nhị phân
IV.2.5. Một cách biểu diễn khác của cây nhị phân
IV.2.6. Biểu diễn cây n - phân bằng cây nhị phân
IV.2.7. Xây dựng cây nhị phân cân bằng hoàn toàn
IV.3. Cây nhị phân tìm kiếm
IV.3.1. Định nghĩa cây nhị phân tìm kiếm
IV.3.3. Chèn một phần tử vào cây BST, xây dựng cây BST
IV.3.4. Phương pháp sắp xếp bằng cây BST
IV.3.5. Xóa một phần tử khỏi cây BST, hủy cây BST
IV.4. Cây nhị phân tìm kiếm cân bằng
IV.4.1. Định nghóa
IV.4.2. Chiều cao của cây cân bằng
IV.4.3. Chỉ số cân bằng của cây AVL
IV.4.4. Chèn một phần tử vào cây AVL
IV.4.5. Xóa một phần tử khỏi cây AVL
Đà Lạt, ngày 12 tháng 05 năm 2006
Người biên soạn