CHAPTER 6: LINKED LISTS
Cấu trúc dữ liệu động
Mục tiêu
Kiểu dữ liệu tĩnh
CTDL tĩnh – Một số hạn chế
CTDL tĩnh
Cấu trúc dữ liệu động
Hướng giải quyết
Slide 9
Biến không động
Biến động
Slide 12
Slide 13
Slide 14
Biến động – Ví dụ
Kiểu dữ liệu Con trỏ
Con trỏ – Khai báo
Con trỏ – Thao tác căn bản
Danh sách liên kết (List)
Slide 20
Slide 21
Slide 22
Danh sách liên kết (List)
Slide 24
Danh sách liên kết đơn (xâu đơn)
DSLK - định nghĩa
Cấu trúc dữ liệu của DSLK đơn
Lưu trữ DSLK đơn trong RAM
DSLK đơn truy xuất – Minh họa
Tổ chức, quản lý
DSLK – Khai báo phần Data
Slide 32
Tạo một phần tử
Slide 34
Các thao tác cơ sở
Khởi tạo danh sách rỗng
Thêm một phần tử
Thêm một phần tử
Thêm một phần tử vào đầu
Slide 40
Slide 41
Thêm một thành phần dữ liệu vào đầu
Slide 43
Tạo Link list bằng cách thêm vào đầu
Thêm một phần tử vào cuối
Slide 46
Slide 47
Thêm một thành phần dữ liệu vào cuối
Slide 49
Tạo Link list bằng cách thêm vào cuối
Chèn một phần tử sau q
Slide 52
Slide 53
Duyệt danh sách
Slide 55
DSLK – Minh họa in danh sách
Slide 57
Slide 58
Slide 59
Slide 60
Slide 61
Slide 62
Slide 63
Slide 64
Slide 65
Slide 66
Slide 67
In các phần tử trong danh sách
Tìm kiếm một phần tử có khóa x
Xóa một node của danh sách
Slide 71
Slide 72
Slide 73
Xóa node sau node q trong danh sách
Slide 75
Hủy toàn bộ danh sách
Slide 77
Sắp xếp trên danh sách liên kết đơn
Sắp xếp danh sách
Sắp xếp danh sách Hoán vị nội dung các phần tử trong danh sách
Slide 81
Slide 82
Slide 83
Slide 84
Slide 85
Slide 86
Sắp xếp bằng phương pháp chọn trực tiếp ( Selection sort )
Slide 88
Slide 89
Slide 90
Slide 91
Slide 92
Sắp xếp bằng phương pháp nổi bọt ( Bubble sort )
Slide 94
Slide 95
Slide 96
Slide 97
Slide 98
Sắp xếp Thay đổi các mối liên kết
Phương pháp lấy Node ra khỏi danh sách giữ nguyên địa chỉ của Node
Quick Sort : Thuật toán
Sắp xếp quick sort
Quick sort : phân hoạch
Slide 104
Slide 105
Slide 106
Slide 107
Quick sort
Slide 109
Nối 2 danh sách
Slide 111
Quick sort : nhận xét
Danh sách hạn chế
Stack ( Chồng )
Slide 115
Giới thiệu
Hiện thực stack
Slide 118
Biểu diễn Stack dùng mảng
Slide 120
Khai báo stack
Slide 122
Slide 123
Slide 124
Slide 125
Biểu diễn Stack dùng danh sách liên kết
Slide 127
Slide 128
Slide 129
Slide 130
Ứng dụng của Stack
Slide 132
Hàng đợi ( Queue)
Slide 134
Slide 135
Slide 136
Biểu diễn Queue dùng mảng
Slide 138
Slide 139
Slide 140
Slide 141
Slide 142
Slide 143
Slide 144
Slide 145
Biểu diễn hàng đợi dùng danh sách liên kết
Slide 147
Slide 148
Slide 149
Slide 150
Slide 151
Ứng dụng của hàng đợi
Ứng dụng STACK để khử đệ quy cho bài toán tháp Hà Nội
Bài toán Tháp Hà nội
Bài toán Tháp Hà nội – Thiết kế hàm
Bài toán Tháp Hà nội – Mã C++