Giaùo trình naøy nhaèm cung caáp cho sinh vieân caùc kieán thöùc caên baûn veà caùc caáu truùc döõ lieäu cô sôû coù caáu truùc tónh vaø ñoäng (thoâng qua danh saùch lieân keát vaø caâ[r]
(1)1 ĐẠI HỌC ĐAØ LẠT
Khoa: Toán - Tin
ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN
1 Tên học phần: CẤU TRÚC DỮ LIỆU VAØ GIẢI THUẬT 1 Mã số: TH Số đơn vị học trình: (3 LT + TH)
3 Trình độ: dành cho sinh viên năm thứ Phân bố thời gian:
- Lên lớp: tín
- Thực hành phịng máy: tín Điều kiện tiên quyết: Nhập mơn lập trình Mơ tả vắn tắt nội dung học phần:
Giới thiệu cho học viên kiến thức cấu trúc liệu tĩnh động (thông qua danh sách liên kết cây) Trên sở đó, cung cấp cho học viên kiến thức thuật toán gắn liền với cấu trúc liệu xếp tìm kiếm nhớ so sánh độ phức tạp thuật toán Ngơn ngữ lập trình chọn để minh họa kiến thức C++
7 Nhiệm vụ sinh viên: học viên cần tham dự đầy đủ buổi - Lên lớp: lý thuyết giải tập lớp
- Bài tập: thực hành phòng máy Tài liệu học tập:
- Sách, giáo trình chính: giáo trình “Cấu trúc liệu thuật toán 1” - Sách tham khảo:
[1] NIKLAUS WIRTH: Cấu trúc liệu + Giải thuật = Chương trình (Nguyễn Quốc Cường dịch) NXB ĐH THCN – 1991
[2] LARRY N HOFF, SANFORD LEESTMA: Lập trình nâng cao Pascal với cấu trúc liệu Bản dịch Lê Minh Trung Công ty Scitec - 1991
[3] NGUYỄN TRUNG TRỰC: Cấu trúc 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 liệu 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 liệu 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)2 Tiêu chuẩn đánh giá sinh viên
- Thi thực hành cuối học kỳ - Thi viết cuối học kỳ
- Khác: sinh viên - giỏi đăng ký với giáo viên để làm tiểu luận (bài tập lớn), giáo viên đánh giá trực tiếp sinh viên mặt lý thuyết lẫn thực hành máy thơng qua tiểu luận
10 Thang điểm:
- Đối với sinh viên bình thường:
Điểm thi thực hành 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 tập lớn: sinh viên thi cuối kỳ lấy điểm tiểu luận làm điểm kết cuối học phần
11 Muïc tiêu học phần
Giáo trình nhằm cung cấp cho sinh viên kiến thức cấu trúc liệu sở có cấu trúc tĩnh động (thông qua danh sách liên kết cây, chủ yếu nhị phân) thuật toán liên quan đến chúng xếp, tìm kiếm nhớ Để nắm bắt kiến thức trình bày học phần này, sinh viên cần nắm kiến thức tin học đại cương, nhập mơn lập trình Các kiến thức tạo điều kiện cho học viên tiếp tục dễ dàng nắm bắt kiến thức học phần tin học sau như: cấu trúc liệu thuật toán nâng cao, thiết kế đá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:
Chương I
GIỚI THIỆU CẤU TRÚC DỮ LIỆU VÀ PHÂN TÍCH THUẬT TỐN I.1 Quan hệ cấu trúc liệu thuật toán
I.2 Thiết kế phân tích thuật tốn
I.2.1 Thiết kế thuật tốn theo phương pháp Top-Down I.2.2 Phân tích thuật toán độ phức tạp thuật toán
Chương II
TÌM KIẾM VÀ SẮP XẾP II.1 Giới thiệu xếp tìm kiếm
II.1.1 Định nghóa xếp
II.1.2 Định nghóa phép tìm kiếm II.2 Phương pháp tìm kiếm
(3)3 II.3.1 Các phương pháp xếp chọn vaø HeapSort
II.3.2 Các phương pháp chèn ShellSort II.3.3 Các phương pháp đổi chỗ QuickSort II.3.4 Các Phương pháp xếp trộn theo số II.3.5 So sánh phương pháp xếp
Chương III
CẤU TRÚC DANH SÁCH LIÊN KẾT III.1 Giới thiệu đối tượng liệu trỏ
III.1.1 So sánh cấu trúc liệu tĩnh cấu trúc liệu động III.1.2 Định nghĩa
III.1.3 Khai baùo
III.1.4 Cấp phát 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 DSLK
III.3.1 Ngaên xếp
a Định nghóa cài đặt ngăn xếp
b Các phép tốn ngăn xếp c Một số ứng dụng ngăn xếp
III.3.2 Hàng đợi
a Định nghĩa cài đặt hàng đợi b Các phép toán hàng đợi c Ứng dụng 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.3 DSLK đối xứng III.4.4 DS đa liên kết
III.4.5 Một số ứng dụng khác DSLK a DS có thứ tự DS tổ chức lại b Cài đặt tập hợp DSLK
c Cài đặt đa thức rời rạc DSLK d Cài đặt ma trận thưa DSLK e Sắp xếp topology
(4)4 IV.1.1 Định nghóa
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 nhị phân IV.2.3 Biểu diễn nhị phân
IV.2.4 Duyệt nhị phân
IV.2.5 Một cách biểu diễn khác nhị phân IV.2.6 Biểu diễn n - phân nhị phân IV.2.7 Xây dựng nhị phân cân hoàn toàn IV.3 Cây nhị phân tìm kiếm
IV.3.1 Định nghĩa nhị phân tìm kiếm IV.3.2 Tìm kiếm phần tử BST
IV.3.3 Chèn phần tử vào BST, xây dựng BST IV.3.4 Phương pháp xếp BST
IV.3.5 Xóa phần tử khỏi BST, hủy BST IV.4 Cây nhị phân tìm kiếm cân
IV.4.1 Định nghóa
IV.4.2 Chiều cao cân IV.4.3 Chỉ số cân AVL IV.4.4 Chèn phần tử vào AVL IV.4.5 Xóa phần tử khỏi AVL
Đà Lạt, ngày 12 tháng 05 năm 2006 Người biên soạn