UBND THÀNH PH HI PHÒNG
TRƯỜNG ĐẠI HC HI PHÒNG
GIÁO TRÌNH
CU TRÚC D LIU VÀ GII THUT
Mã s: GT.CN.2023.03
Ch biên: TS. Đào Thị ng
Các thành viên: ThS. Nguyễn Văn Quang, ThS. Vũ Thị Sơn, ThS.
Hoàng Văn Lâm
Đơn vị: Khoa Công ngh thông tin
Hi Phòng, m 2023
ii
MC LC
MC LC .................................................................................................................. ii
DANH MC HÌNH V ............................................................................................ v
DANH MC BNG BIU ................................................................................... viii
LỜI NÓI ĐẦU ........................................................................................................... x
Chương 1. TNG QUAN V CU TRÚC D LIU VÀ GII THUT ........... 1
1.1. TNG QUAN V CU TRÚC D LIU .............................................. 1
1.1.1. D liu và cu trúc d liu .............................................................. 1
1.1.2. Phân loi các kiu cu trúc d liu .................................................. 5
1.1.3. Kiu d liu và kiu d liu trừu tưng .......................................... 8
1.1.4. Các ng dng ca cu trúc d liu .................................................. 9
1.2. KHÁI QUÁT V ĐÁNH GIÁ ĐỘ PHC TP CA GII THUT 10
1.2.1. Gii thuật và độ phc tp ca thut toán ....................................... 10
1.2.2. Phân tích thut toán ....................................................................... 13
1.2.2. Mt s quy tắc đánh giá độ phc tp ca thut toán ..................... 16
1.3. CÂU HI VÀ BÀI TẬP CHƯƠNG 1 ................................................... 19
Chương 2. THUT TOÁN ĐỆ QUY ..................................................................... 20
2.1. CƠ S LÝ THUYT V ĐỆ QUY ..................................................... 20
2.1.1. Thuật toán đệ quy (Recursive Algorithm) .................................... 20
2.1.2. Cơ chế hot đng của hàm đệ quy ................................................ 22
2.2. VÍ D MINH HO THUT TOÁN ĐỆ QUY ..................................... 24
2.2.1. Bài toán con th trên mặt trăng (dãy số Fibonaci) ........................ 24
2.2.2. Bài toán tháp Hà Ni ..................................................................... 25
2.3. CÂU HI VÀ BÀI TẬP CHƯƠNG 2 ................................................... 29
Chương 3. MT S CU TRÚC D LIU CƠ BN ........................................ 30
3.1. DANH SÁCH ........................................................................................... 30
3.1.1. Khái nim danh sách ...................................................................... 30
3.1.2. Các phép toán trên danh sách ........................................................ 30
3.2. MNG ...................................................................................................... 31
3.2.1. Định nghĩa mng............................................................................ 31
3.2.2. Các phép toán đi vi mng .......................................................... 34
3.2.3. Đánh giá cấu trúc d liu kiu mng ............................................. 37
3.3. DANH SÁCH NI ĐƠN ......................................................................... 37
3.3.1. Khái nim danh sách ni đơn ........................................................ 37
iii
3.3.2. Các phép toán cơ bản vi danh sách nối đơn ................................ 39
3.4. DANH SÁCH NI KÉP ......................................................................... 48
3.4.1. Gii thiu danh sách ni kép ......................................................... 48
3.4.2. Các phép toán cơ bản vi danh sách ni kép ................................. 50
3.5. NGĂN XẾP (STACK) ............................................................................. 53
3.5.1. Gii thiệu ngăn xếp........................................................................ 53
3.5.2. Các phép toán cơ bản của ngăn xếp ............................................... 54
3.5.3. Cài đặt Stack bng mng. .............................................................. 54
3.5.4. Cái đặt Stack bng danh sách nối đơn ........................................... 59
3.5.5. ng dng của ngăn xếp ................................................................. 62
3.6. HÀNG ĐỢI (QUEUE) ............................................................................. 63
3.6.1. Gii thiệu hàng đợi ........................................................................ 63
3.6.2. Cài đặt Queue bng mng .............................................................. 63
3.6.3. Cái đặt Queue bng danh sách liên kết đơn. .................................. 67
3.6.4. ng dng ca Queue. .................................................................... 69
3.7. CÂU HI VÀ BÀI TẬP CHƯƠNG 3 ................................................... 71
Chương 4. SẮP XẾP VÀ TÌM KIẾM .................................................................... 74
4.1. SP XP................................................................................................... 74
4.1.1.M đầu v sp xếp .......................................................................... 74
4.1.2.Mt s thut toán sp xếp ............................................................... 75
4.2. TÌM KIM ............................................................................................... 89
4.2.1. M đầu vm kiếm .............................................................................. 89
4.2.2. Mt s phương pháp tìm kiếm ....................................................... 89
4.3. CÂU HI VÀ BÀI TẬP CHƯƠNG 4 ................................................... 94
Chương 5. CÂY (TREE) ......................................................................................... 95
5.1. CÁC KHÁI NIM ................................................................................... 95
5.2. CÁC PHÉP TOÁN CƠ BẢN TRÊN CÂY ............................................ 97
5.3. CÁC PHƯƠNG PHÁP CÀI ĐT CÂY .............................................. 100
5.4. CÂY NH PHÂN ................................................................................... 102
5.4.1. Tng quan vy nh phân .......................................................... 102
5.4.2. Cây nh phân tìm kiếm. ................................................................ 110
5.5. CÂY NH PHÂN CÂN BNG ( AVL TREE) .................................... 119
5.5.1. Cây nh phân cân bng hoàn toàn ................................................ 119
5.5.2. Cây nh phân cân bng tng quát ................................................. 120
iv
5.5.3. Các thao tác cân bng li cây ....................................................... 122
5.5.4. To cây nh phân cân bng AVL ................................................. 137
5.6. CÂU HI VÀ BÀI TẬP CHƯƠNG 5 ................................................. 139
Chương 6. ĐỒ TH
(
GRAPH
)
.............................................................................. 141
6.1. ĐỊNH NGHĨA V ĐỒ TH ................................................................. 141
6.1.1. Các khái nim v đồ th ............................................................... 141
6.1.2. Các khái nim trên đồ thhướng ............................................ 142
6.1.3. Mt s thut ng trên đồ th hướng......................................... 142
6.1.4. Mt s loi đồ th đặc bit ........................................................... 143
6.2. CÁC PHƯƠNG PHÁP BIU DIN Đ TH .................................... 144
6.2.1. Biu diễn đồ th bng ma trn k ................................................. 144
6.2.3. Biu din đồ th bng danh ch cnh.......................................... 146
6.2.3. Biu din đồ th bng danh ch k ............................................. 147
6.2.4. Biu din đồ th bng danh ch k da vào danh ch liên kết .. 148
6.3. CÁC THUT TOÁN TÌM KIẾM TRÊN ĐỒ TH ............................ 150
6.3.1. Thut toán tìm kiếm theo chiu sâu (Depth First Search)............ 151
6.3.2. Thut toán tìm kiếm theo chiu rng (BFS-Breadth First
Search) ........................................................................................ 155
6.4. NG DNG CA CÁC THUT TOÁN TÌM KIẾM TRÊN Đ
TH ...................................................................................................... 160
6.5. CÂU HI VÀ BÀI TP ÔN TP CHƯƠNG 6 ................................ 161
TÀI LIU THAM KHO .................................................................................... 162
TÀI LIU THAM KHO TING VIT ................................................... 162
TÀI LIU THAM KHO TING ANH .................................................... 162
CÁC TRANG WEB ...................................................................................... 162
v
DANH MC HÌNH V
Hình 1-1: Minh ho các mc d liu ................................................................ 1
Hình 1-2: Phân loi cu trúc d liu trong máy tính ......................................... 6
Hình 2-1: Minh ho khái nim đệ quy ............................................................ 20
Hình 2-2: Minh ho cơ chế tính n! đối với hàm đệ quy .................................. 23
Hình 2-3: Bài toán con th trên mặt trăng ...................................................... 24
Hình 2-4: Bài toán tháp Hà Ni ...................................................................... 26
Hình 2-5: Minh ho thc hin bài toán tháp Hà Ni vi s ng đĩa là 3 .... 28
Hình 3-1: Minh ho cu trúc d liu kiu mng mt chiu ............................ 32
Hình 3-2: Minh ho mng hai chiu ............................................................... 33
Hình 3-3: Minh ho phép toán chèn mt phn t vào trong mảng đã sắp xếp 35
Hình 3-4: Minh ho phép toán loi b mt phn t khi mng ...................... 35
Hình 3-5: Minh ho thut toán trn hai mng đã có thứ t ............................ 37
Hình 3-6: Mt node ca danh sách liên kết .................................................... 38
Hình 3-7: Danh sách liên kết ........................................................................... 38
Hình 3-8: Hình nh danh sách liên kết đơn được tr bi con tr P ................ 41
Hình 3-9: Minh ho chèn nút mới q vào đầu danh sách liên kết .................... 41
Hình 3-10: Hình nh con tr ph m tìm ti nút cui cùng ............................. 42
Hình 3-11: Hình nh b sung nút mi q vào sau nút cui cùng ..................... 42
Hình 3-12: Hình nh danh sách liên kết có R tr vào nút bt k .................... 44
Hình 3-13: Hình nh cho con tr ph m tìm tới nút trước nút R .................... 44
Hình 3-14: Hình nh b sung nút mới q vào trước nút bt k R .................... 44
Hình 3-15: Hình nh tìm nút có giá tr trường khóa ca info bng x ............. 47
Hình 3-16: Phn t trong danh sách ni kép ................................................... 48
Hình 3-17: Hình nh danh sách ni kép .......................................................... 49
Hình 3-18: Hình nh chèn nút mi q vào sau nút cui ca danh sách ni kép
......................................................................................................................... 51
Hình 3-19: Đẩy mt phn t vào trong ngăn xếp ........................................... 53
Hình 3-20: Ly mt phn t ra khỏi ngăn xếp ................................................ 53