1.1 Kiến thức về Cấu trúc dữ liệu

Dưới đây là những kiến thức liên quan đến cấu trúc dữ liệu (Data Structures) do tác giả tổng hợp.
Mục tiêu là liệt kê đầy đủ các cấu trúc dữ liệu phổ biến. Nếu có thiếu sót, hoan nghênh mọi người góp ý hoặc gửi PR.
Các bài toán liên quan hiện vẫn đang được bổ sung dần, và các bài viết giải thích chi tiết cũng đang trong quá trình hoàn thiện.

Việc luyện giải bài tập chỉ là một phương tiện để nâng cao năng lực thuật toán,
mục tiêu cuối cùng phải là nâng cao tư duy.
Kiến thức cần được kết tinh thành từng khối, vì vậy hãy tổng hợp chúng trong hai phần đầu của chương một để nâng tầm hiểu biết.
Tác giả hy vọng rằng sau khi bạn đã luyện xong các bài tập, khi quay lại xem bảng tổng hợp này,
bạn có thể hệ thống hóa kiến thức một cách rõ ràng, phát hiện phần còn thiếu và nhanh chóng hoàn thiện nền tảng của mình.

Cấu trúc dữ liệuBiến thểBài toán liên quanBài viết giải thích
Danh sách tuyến tính tuần tự: Vector
Danh sách liên kết đơn (Singly Linked List)1. Danh sách liên kết đôi (Double Linked List)
2. Danh sách liên kết tĩnh (Static List)
3. Ma trận đối xứng (Symmetric Matrix)
4. Ma trận thưa (Sparse Matrix)
Bảng băm (Hash Table)1. Hàm băm (Hash Function)
2. Giải quyết va chạm / hệ số tải (Collision Resolution / Load Factor)
Ngăn xếp & Hàng đợi (Stack & Queue)1. Danh sách tổng quát (Generalized List / GList)
2. Hàng đợi hai đầu (Deque)
Hàng đợi (Queue)1. Cài đặt bằng danh sách liên kết (Linked List Implementation)
2. Cài đặt bằng mảng vòng (Array Queue)
3. Hàng đợi hai đầu (Deque)
4. Hàng đợi ưu tiên (Priority Queue)
5. Hàng đợi vòng (Circular Queue)
Chuỗi (String)1. Thuật toán KMP (Knuth–Morris–Pratt Algorithm)
2. Máy trạng thái hữu hạn (Finite State Automaton)
3. Máy trạng thái hữu hạn cho so khớp mẫu (Pattern Matching Finite State Automaton)
4. Thuật toán BM (Boyer–Moore Algorithm)
5. Thuật toán BM-KMP
6. Thuật toán BF (Brute Force Algorithm)
Cây (Tree)1. Cây nhị phân (Binary Tree)
2. Tập hợp rời rạc / Union-Find
3. Cây Huffman (Huffman Tree)
Heap cài đặt bằng mảng1. Heap cực đại & cực tiểu (Max Heap & Min Heap)
2. Heap cực đại–cực tiểu (Min–Max Heap)
3. Heap hai đầu (Double-Ended Heap / Deap)
4. Heap d-nhánh (d-ary Heap)
Heap cài đặt bằng cây1. Heap thiên tả (Leftist Tree / Leftist Heap)
2. Heap lệch (Skew Heap)
3. Heap nhị thức (Binomial Heap)
4. Heap Fibonacci (Fibonacci Heap)
5. Heap ghép cặp (Pairing Heap)
Tìm kiếm (Search)1. Bảng băm (Hash)
2. Danh sách nhảy (Skip List)
3. Cây tìm kiếm nhị phân (Binary Search Tree)
4. Cây AVL (AVL Tree)
5. B-tree / B+ Tree / B* Tree
6. Cây AA (AA Tree)
7. Cây đỏ-đen (Red-Black Tree)
8. Heap nhị phân (Binary Heap)
9. Cây Splay (Splay Tree)
10. Cây liên kết đôi (Double Chained Tree)
11. Cây Trie (Trie Tree)
12. Cây R (R-Tree)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------