SỞ LAO ĐỘNG, THƯƠNG BINH VÀ XÃ HỘI ĐẮK LẮK
TRƯỜNG TRUNG CẤP TRƯỜNG SƠN
GIÁO TRÌNH
N HỌC: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
NGHỀ: CÔNG NGHỆ THÔNG TIN
TRÌNH ĐỘ: TRUNG CẤP
Ban hành kèm theo Quyết định s: 140/QĐ-TCTS ngày 02 tháng 8 năm 2022
của Hiệu trưởng Trường trung cấp Trường Sơn
Đắk Lắk, năm 2022
ii
TUYÊN B BN QUYN
Tài liu này thuc loi sách giáo trình nên các ngun thông tin th được phép
dùng nguyên bn hoc trích dùng cho các mục đích về đào tạo và tham kho.
Mi mục đích khác mang tính lch lc hoc s dng vi mục đích kinh doanh
thiếu lành mnh s b nghiêm cm.
iii
LỜI GIỚI THIỆU
Hin nay, tại Trường chưa giáo trình Cấu trúc d liu & gii thuật. Đặc bit
trên th trưng không tài liu hc tp, tham kho phù hp với chương trình khung
Cao đẳng ngh, trung cp ngh thuc ngh Công ngh thông tin (CNTT) trong quá
trình đào to ngh hin nay.
Nhóm tác gi biên son giáo trình lp trình bản nhm mục đích giúp học
sinh, sinh viên (HSSV) s dng giáo trình làm tài liu nghiên cu hc tp mt cách
thun tiện. Chương trình môn học được s dụng để ging dy cho sinh viên trung cp
ngh Công ngh thông tin (ng dng phn mm) làm tài liu tham kho cho các
ngh thuc các ngành ngh k thut.
Vy, rất mong đưc s góp ý ca bạn đọc để tài liệu này ngày càng được hoàn
thiện hơn, chúng tôi xin chân thành cảm ơn..
Xin chân thành cảm ơn!.
Đắk Lk, ngày 02 tháng 8 năm 2022
Tham gia biên son
1. Nguyễn Như Cưng - Ch biên
2. Nguyn Th Nhung
3. Lưu Thị Thương
iv
MC LC
LỜI GIỚI THIỆU .......................................................................................................... III
GIÁO TRÌNH MÔN HỌC .............................................................................................. 7
CHƯƠNG I. THIẾT KẾ VÀ PHÂN TÍCH GIẢI THUẬT ............................................ 9
1. T BÀI TOÁN ĐN CƠNG TNH: ............................................................................................... 9
1.1 Modul hóa việc giải quyết bài toán: ................................................................................................ 9
1.2 Phương pháp tinh chỉnh từng bước ................................................................................................. 9
2. PN TÍCH GIẢI THUT: ................................................................................................................. 9
3. ĐPHC TP NH TOÁN CỦA GIẢI THUẬT .............................................................................. 10
3.1 Khái niệm: ................................................................................................................................................ 10
3.2. Ví dụ .......................................................................................................................................................... 10
3.3 Xác định độ phức tạp tính toán của giải thuật: ......................................................................... 10
CHƯƠNG II. ĐỆ QUY VÀ GIẢI THUẬT ĐỆ QUY .................................................. 12
1. KI NIỆM ĐỆ QUY: ...................................................................................................................... 12
2. GIẢI THUẬT Đ QUY VÀ THTỤC ĐỆ QUY ................................................................................ 12
3. THIT KGIẢI THUẬT ĐQUY ..................................................................................................... 12
3.1 Bài toán tính n! ....................................................................................................................................... 12
3.2. Dãy số Fibonacci: ................................................................................................................................ 14
3.3 Bài toán tháp Hà Nội: .......................................................................................................................... 14
4. HIỆU LỰC Đ QUY: ......................................................................................................................... 14
CHƯƠNG III. MẢNG VÀ DANH SÁCH ................................................................... 15
1. CÁC KHÁI NIM: ............................................................................................................................. 15
1.1. Mảng: ........................................................................................................................................................ 15
2. CẤU TRÚC LƯU TRỮ CỦA MẢNG ................................................................................................. 16
2.1 Khái niệm: ................................................................................................................................................ 16
2.2 Định nghĩa kiểu cấu trúc .................................................................................................................... 17
2.3 Khai báo biến cấu trúc ........................................................................................................................ 18
3. LƯU TR K TIẾP CỦA DANH CH TUYẾN NH ..................................................................... 18
3.1. Khái niệm: ............................................................................................................................................... 18
3.2. Khai báo biến tập hợp: ....................................................................................................................... 18
3.3 Khai báo biến kiểu tập hợp: .............................................................................................................. 19
4 STACK HAY DANH SÁCH KIU NGĂN XẾP: ................................................................................. 20
v
4.1. Khái niệm - Cấu trúc dữ liệu: ...................................................................................................... 20
4.2 Lưu trữ Stack bằng mảng .................................................................................................................. 20
4.3 ng dng của ngăn xếp (Biu thc hu t - ký pháp Ba Lan) .......................................... 21
5.
HÀNG
ĐỢI
(QUEUE) ................................................................................................................... 22
5.1 Khái niệm: ............................................................................................................................................... 22
5.2 Lưu trữ Queue bằng mảng: ............................................................................................................... 23
CHƯƠNG IV. Y ...................................................................................................... 25
1. CÁC KI NIỆM CƠ BẢN: .............................................................................................................. 25
1.1.
Định
nghĩa
cây: .................................................................................................................................. 25
1.2. Một số khái niệm liên quan ............................................................................................................. 27
1.3.
Biểu
diễn
cây ...................................................................................................................................... 28
2. CÂY NHỊ PHÂN (BINARY TREE): .................................................................................................. 29
2.2. Biểu diễn cây nhị phân: ................................................................................................................... 30
3. PHÉP DUYỆT CÂY NHỊ PHÂN: ....................................................................................................... 30
3.1 Duyệt theo thứ tự trước NLR (Node Left Right) ............................................................ 31
3.2 Duyệt theo thứ tự giữa LNR (Left Node Right) .............................................................. 31
3.3 Duyệt theo thứ tự sau LRN (Left – Right Node ) ............................................................... 33
4. CÂY NH PN TÌM KIẾM: ............................................................................................................. 33
4.1. Định nghĩa ............................................................................................................................................... 33
4.2. Tìm kiếm trên cây nhị phân tìm kiếm ......................................................................................... 34
4.3.Thêm phần tử mới vào cây nhị phân tìm kiếm......................................................................... 35
4.4.Xóa phần tử khỏi cây nhị phân tìm kiếm .................................................................................... 36
4.5. Xóa toàn bộ cây nhị phân ................................................................................................................. 39
5. BÀI TẬP: .......................................................................................................................................... 39
CHƯƠNG V. ĐỒ THỊ VÀ MỘT VÀI CẤU TRÚC PHI TUYẾN .............................. 40
1. CÁC KHÁI NIM VĐỒ THỊ ........................................................................................................... 40
2. BIỂU DIN ĐỒ TH .......................................................................................................................... 41
2.1 Biểu diễn bằng ma trận lân cận: ..................................................................................................... 41
2.2 Biểu diễn bằng danh sách lân cận ................................................................................................. 42
3. PP DUYT MỘT Đ THỊ ............................................................................................................. 42
3.1 Tìm kiếm theo chiều sâu: .................................................................................................................. 42
3.2 Tìm kiếm theo chiều rộng: ............................................................................................................... 42