Mục lục
Chương I: Cây ............................................................................................................................... 4
I. Các thuật ngữ cơ bản 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ự duyệt cây quan trọng........................................................................................ 6
4. Cây có nhãn và cây biểu thức............................................................................................ 6
II. Cây nhị phân (Binary Trees)................................................................................................... 8
1. Định nghĩa ......................................................................................................................... 8
2. Vài tính chất của cây nhị phân........................................................................................... 9
3. Biểu diễn cây nhị phân ...................................................................................................... 9
4. Duyệt 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 bằng (Cây AVL)....................................................................... 21
1. Cây nhị phân cân bằng hoàn toàn..................................................................................... 21
2. Xây dựng cây nhị phân cân bằng hoàn toàn..................................................................... 21
3. Cây tìm kiếm nhị phân cân bằng (cây AVL).................................................................... 22
Bài tập........................................................................................................................................ 32
Chương II: Đồ Thị....................................................................................................................... 35
I. Các định nghĩa................................................................................................................... 35
III. Biểu diễn đồ thị.................................................................................................................... 36
1. Biểu diễn đồ thị bằng ma trận kề...................................................................................... 37
2. Biểu diễn đồ thị bằng danh sách các đỉnh kề.................................................................... 38
IV. Các phép duyệt đồ thị (traversals of Graph)........................................................................ 38
1. Duyệt theo chiều sâu (Depth-first search) ........................................................................ 38
2. Duyệt theo chiều rộng (breadth-first search).................................................................... 40
V. Một số bài toán trên đồ thị................................................................................................... 43
1. Bài toán tìm đường đi ngắn nhất từ một đỉnh của đồ thị.................................................. 43
2. Bài toán tìm bao đóng chuyển tiếp. .................................................................................. 47
3. Bài toán tìm cây bao trùm tối thiểu (minimum-cost spanning tree)................................. 48
Bài tập........................................................................................................................................ 53
Chương III: Bảng 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 giải quyết va chạm.................................................................................. 59
1. Phương pháp định địa chỉ mở........................................................................................... 59
2. Phương pháp tạo dây chuyền............................................................................................ 62
IV. Cài đặt bảng băm địa chỉ mở............................................................................................... 63
V. Cài đặt bảng băm dây chuyền.............................................................................................. 66
VI. Hiệu quả của các phương pháp băm.................................................................................... 69
2