DANH MỤC TÀI LIỆU
Tổng quan về cấu trúc dữ liệu và giải thuật
TRƯỜNG ĐẠI HC ĐÀ LT
KHOA CÔNG NGH THÔNG TIN
NGUYN TH THANH BÌNH
BÀI GING TÓM TT
CU TRÚC D LIU VÀ THUT GII 2
Dành cho sinh viên ngành công ngh thông tin
(Lưu hành ni b)
Đà Lt 2008
LI NÓI ĐẦU
Để đáp ng nhu cu hc tp ca các bn sinh viên, nht là sinh viên chuyên ngành
công ngh thông tin, Khoa Công Ngh Thông Tin Trường Đại Hc Đà Lt chúng tôi đã
tiến hành biên son các giáo trình, bài ging chính trong chương trình hc
Tài liu này được son theo đề cương chi tiết môn Cu Trúc D Liu Và Thut Gii 2
ca Khoa Công Ngh Thông Tin Trường Đại Hc Đà Lt. Mc tiêu ca nó nhm giúp các
bn sinh viên chuyên ngành có mt tài liu cô đọng dùng làm tài liu hc tp.
Mc dù đã rt c gng nhiu trong quá trình biên son giáo trình, song không khi còn
nhiu thiếu sót và hn chế. Rt mong nhn được s đóng góp ý kiến quý báu ca sinh
viên và các bn đọc để giáo trình ngày mt hoàn thin hơn.
Đà Lt, ngày 30 tháng 06 năm 2008
1
Mc lc
Chương I: Cây ............................................................................................................................... 4
I. Các thut ng cơ bn trên cây ................................................................................................ 4
1. Định nghĩa ......................................................................................................................... 4
2. Th t các nút trong cây.................................................................................................... 5
3. Các th t duyt cây quan trng........................................................................................ 6
4. Cây có nhãn và cây biu thc............................................................................................ 6
II. Cây nh phân (Binary Trees)................................................................................................... 8
1. Định nghĩa ......................................................................................................................... 8
2. Vài tính cht ca cây nh phân........................................................................................... 9
3. Biu din cây nh phân ...................................................................................................... 9
4. Duyt cây nh phân............................................................................................................ 9
5. Cài đặt cây nh phân ........................................................................................................ 10
IV. Cây tìm kiếm nh phân (Binary Search Trees).................................................................... 12
1. Định nghĩa ........................................................................................................................ 12
2. Cài đặt cây tìm kiếm nh phân.......................................................................................... 13
V. Cây nh phân tìm kiếm cân bng (Cây AVL)....................................................................... 21
1. Cây nh phân cân bng hoàn toàn..................................................................................... 21
2. Xây dng cây nh phân cân bng hoàn toàn..................................................................... 21
3. Cây tìm kiếm nh phân cân bng (cây AVL).................................................................... 22
Bài tp........................................................................................................................................ 32
Chương II: Đồ Th....................................................................................................................... 35
I. Các định nghĩa................................................................................................................... 35
III. Biu din đồ th.................................................................................................................... 36
1. Biu din đồ th bng ma trn k...................................................................................... 37
2. Biu din đồ th bng danh sách các đỉnh k.................................................................... 38
IV. Các phép duyt đồ th (traversals of Graph)........................................................................ 38
1. Duyt theo chiu sâu (Depth-first search) ........................................................................ 38
2. Duyt theo chiu rng (breadth-first search).................................................................... 40
V. Mt s bài toán trên đồ th................................................................................................... 43
1. Bài toán tìm đường đi ngn nht t mt đỉnh ca đồ th.................................................. 43
2. Bài toán tìm bao đóng chuyn tiếp. .................................................................................. 47
3. Bài toán tìm cây bao trùm ti thiu (minimum-cost spanning tree)................................. 48
Bài tp........................................................................................................................................ 53
Chương III: Bng Băm ............................................................................................................... 55
I. Phương pháp băm................................................................................................................. 55
II. Các hàm băm ..................................................................................................................... 57
1. Phương pháp chia ............................................................................................................. 57
2. Phương pháp nhân ............................................................................................................ 57
3. Hàm băm cho các giá tr khoá là xâu ký t...................................................................... 58
III. Các phương pháp gii quyết va chm.................................................................................. 59
1. Phương pháp định địa ch m........................................................................................... 59
2. Phương pháp to dây chuyn............................................................................................ 62
IV. Cài đặt bng băm địa ch m............................................................................................... 63
V. Cài đặt bng băm dây chuyn.............................................................................................. 66
VI. Hiu qu ca các phương pháp băm.................................................................................... 69
2
Bài tp........................................................................................................................................ 71
Chương IV: Mt s phương pháp thiết kế thut gii............................................................... 73
I. Phương pháp chia để tr........................................................................................................ 73
1. M đầu.............................................................................................................................. 73
2. Tìm kiếm nh phân............................................................................................................ 74
3. Bài toán Min-Max ............................................................................................................ 75
4. Thut toán QuickSort........................................................................................................ 76
II. Phương pháp quay lui ........................................................................................................... 79
1. M đầu.............................................................................................................................. 79
2. Bài toán lit kê dãy nh phân độ dài n .............................................................................. 80
3. Bài toán lit kê các hoán v............................................................................................... 80
4. Bài toán duyt đồ th theo chiu sâu (DFS)...................................................................... 81
III. Phương pháp tham lam........................................................................................................ 83
1. M đầu.............................................................................................................................. 83
2. Bài toán người du lch ...................................................................................................... 84
3. Thut toán Prim - Tìm cây bao trùm nh nht ................................................................. 86
4. Bài toán chiếc túi sách...................................................................................................... 86
Bài tp........................................................................................................................................ 87
Tài liu tham kho....................................................................................................................... 89
3
Chương I
Cây
Mc tiêu
Sau khi hc xong chương này, sinh viên phi:
- Nm vng khái nim v cây (trees).
- Cài đặt được cây và thc hin các phép toán trên cây.
Kiến thc cơ bn cn thiết
Để hc tt chương này, sinh viên phi nm vng k năng lp trình căn bn như:
- Kiu con tr (pointer)
- Các cu trúc điu khin, lnh vòng lp.
- Lp trình theo tng module (chương trình con) và cách gi chương trình con
đó.
- Lp trình đệ qui và gi đệ qui.
- Kiu d liu tru tượng danh sách
Ni dung
Trong chương này chúng ta s nghiên cu các vn đề sau:
- Các thut ng cơ bn.
- Kiu d liu tru tượng Cây
- Cây nh phân
- Cây tìm kiếm nh phân
- Cây nh phân tìm kiếm cân bng AVL
I. Các thut ng cơ bn trên cây
Cây là mt tp hp các phn t gi là nút (nodes) trong đó có mt nút được phân bit
gi là nút gc (root). Trên tp hp các nút này có mt quan h, gi là mi quan h cha
- con (parenthood), để xác định h thng cu trúc trên các nút. Mi nút, tr nút gc, có
duy nht mt nút cha. Mt nút có th có nhiu nút con hoc không có nút con nào.
Mi nút biu din mt phn t trong tp hp đang xét và nó có th có mt kiu nào đó
bt k, thường ta biu din nút bng mt kí t, mt chui hoc mt s ghi trong vòng
tròn. Mi quan h cha con được biu din theo qui ước nút cha dòng trên nút con
dòng dưới và được ni bi mt đon thng. Mt cách hình thc ta có th định nghĩa
cây mt cách đệ qui như sau:
1. Định nghĩa
- Mt nút đơn độc là mt cây. Nút này cũng chính là nút gc ca cây.
- Gi s ta có n là mt nút đơn độc và k cây T1,.., Tk vi các nút gc tương ng là
n1,.., nk thì có th xây dng mt cây mi bng cách cho nút n là cha ca các nút
4
n1,.., nk. Cây mi này có nút gc là nút n và các cây T1,.., Tk đưc gi là các cây
con. Tp rng cũng được coi là mt cây và gi là cây rng kí hiu.
Ví d: xét mc lc ca mt quyn sách. Mc lc này có th xem là mt cây
Hình I.1: Cây mc lc sách
Nút gc là sách, nó có ba cây con có gc là C1, C2, C3. Cây con th 3 có gc C3 là
mt nút đơn độc trong khi đó hai cây con kia (gc C1 và C2) có các nút con.
Nếu n1,.., nk là mt chui các nút trên cây sao cho ni là nút cha ca nút ni+1, vi i=1..k-
1, thì chui này gi là mt đường đi trên cây (hay ngn gn là đường đi) t n1 đến nk.
Độ dài đường đi được định nghĩa bng s nút trên đường đi tr 1. Như vy độ dài
đường đi t mt nút đến chính nó bng không.
Nếu có đường đi t nút a đến nút b thì ta nói a là tin bi (ancestor) ca b, còn b gi là
hu du (descendant) ca nút a. Rõ ràng mt nút va là tin bi va là hu du ca
chính nó. Tin bi hoc hu du ca mt nút khác vi chính nó gi là tin bi hoc
hu du thc s. Trên cây nút gc không có tin bi thc s. Mt nút không có hu
du thc s gi là nút lá (leaf). Nút không phi là lá ta còn gi là nút trung gian
(interior). Cây con ca mt cây là mt nút cùng vi tt c các hu du ca nó.
Chiu cao ca mt nút là độ dài đường đi ln nht t nút đó ti lá. Chiu cao ca cây
là chiu cao ca nút gc. Độ sâu ca mt nút là độ dài đường đi t nút gc đến nút đó.
Các nút có cùng mt độ sâu i ta gi là các nút có cùng mt mc i. Theo định nghĩa này
thì nút gc mc 0, các nút con ca nút gc mc 1.
Ví d: đối vi cây trong hình I.1 ta có nút C2 có chiu cao 2. Cây có chiu cao 3. nút
C3 có chiu cao 0. Nút 2.1 có độ sâu 2. Các nút C1,C2,C3 cùng mc 1.
2. Th t các nút trong cây
Nếu ta phân bit th t các nút con ca cùng mt nút thì cây gi là cây có th t, th
t qui ước t trái sang phi. Như vy, nếu k th t thì hai cây sau là hai cây khác
nhau:
Hình I.2: Cây có th t khác nhau
5
thông tin tài liệu
Tài liệu cung cấp những kiến thức chung về cấu trúc dữ liệu và cách giải thuật
Mở rộng để xem thêm
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×