Không gian tự học dành cho sinh viên UET

Chào mừng đến với UETệ

Tìm bài giảng theo học phần, hiểu lại những kiến thức nền và ôn tập theo nhịp học của bạn.

Bài giảng
Đọc Notes, ôn nhanh với Slides và luyện tập qua các bài có lời giải.
Wiki kiến thức
Tra cứu thuật ngữ và bổ sung kiến thức nền ngay khi cần.
Góc học tập
Ôn bằng flashcard, lưu ghi chú và hẹn giờ tập trung.

Bạn có thể xem lại phần giới thiệu ở cuối trang.

Buy me a coffee

Website hoàn toàn miễn phí. Nếu thấy hữu ích, bạn có thể tặng tôi một cốc cà phê theo thông tin dưới đây nhé!

Mã QR chuyển khoản Momo
Ngân hàng
Momo
Tên người nhận
MOMO - TKTH DO MINH TRI
Số tài khoản
01MMTTT0060405229
Skip to content

Cây & cây nhị phân

Bài 4Cập nhật 11/10/2026Ghi chú của bạn

Cấu trúc (Tree) là một cấu trúc dữ liệu phi tuyến tính (non-linear), mô phỏng quan hệ phân cấp như cây gia phả, cấu trúc thư mục trên ổ đĩa, hay DOM trong HTML.


1. Cây Nhị Phân Tìm Kiếm (Binary Search Tree - BST) ​

Một được gọi là BST nếu với mọi nút (Node):

  • Mọi nút trên con trái đều có giá trị nhỏ hơn nút hiện tại.
  • Mọi nút trên con phải đều có giá trị lớn hơn nút hiện tại.

Kết quả duyệt giữa trên cây tìm kiếm nhị phân

Khi duyệt BST theo thứ tự Inorder (Trái → Gốc → Phải), bạn luôn thu được một dãy số tăng dần khi các khóa phân biệt! Ví dụ cây trên: 1→3→4→6 và 7→8→10→13→14.


2. Các Phép Duyệt Cây (Tree Traversals) ​

Cách duyệtThứ tự điỨng dụng phổ biến
Tiền thứ tự (Preorder)Gốc → Trái → PhảiSao chép , biểu diễn tiền tố (Ba Lan)
Trung thứ tự (Inorder)Trái → Gốc → PhảiXuất dữ liệu BST theo thứ tự tăng dần
Hậu thứ tự (Postorder)Trái → Phải → GốcGiải phóng/xóa bộ nhớ từ dưới lên
Theo mức (Level-order)Từng tầng từ trên xuống (BFS)Tìm đường đi ngắn nhất hoặc in theo tầng

3. Thao tác Xóa trên BST (Thường Xuất hiện trong Đề thi UET) ​

Xóa một nút trên BST chia làm 3 trường hợp:

  1. Trường hợp 1 (Nút lá): Không có con → Xóa trực tiếp nút đó.
  2. Trường hợp 2 (Nút có 1 con): Nối thẳng con của nó vào cha của nó rồi xóa nút.
  3. Trường hợp 3 (Nút có 2 con):
    • Tìm phần tử nhỏ nhất bên con phải (Inorder Successor) hoặc phần tử lớn nhất bên cây con trái.
    • Sao chép giá trị đó đè lên nút cần xóa.
    • Xóa nút thay thế đó (lúc này nút thay thế chỉ rơi vào Trường hợp 1 hoặc 2).

4. Hiện tượng Suy biến & Cây Cân bằng (AVL Tree) ​

Nếu bạn chèn một dãy số đã sắp xếp sẵn gồm 1, 2, 3, 4, 5 vào BST thông thường:

  • sẽ biến thành một danh sách liên kết thẳng đứng (chiều cao h=n).
  • Tốc độ tìm kiếm bị tụt từ O(log⁡n) xuống O(n).

Để khắc phục, người ta phát minh ra cân bằng (AVL Tree / Red-Black Tree):

  • Tự động xoay (Left Rotation, Right Rotation) khi hệ số cân bằng (chênh lệch chiều cao 2 nhánh) >1 hoặc <−1.
  • Giữ chiều cao luôn đạt mức O(log⁡n).

5. Hệ thống bài tập tự luyện ​

Toàn bộ hệ thống bài tập thực hành chuyên sâu của bài học này đã được tích hợp đầy đủ tại tab Bài tập ở đầu trang. Sau khi đọc xong phần lý thuyết, bạn hãy bấm chuyển sang tab Bài tập để bắt đầu luyện tập.

Chuyển sang Tab Bài tập

Bấm vào tab Bài tập trên thanh điều hướng bài giảng ở đầu trang để mở các bài tập thực chiến có hướng dẫn chi tiết và kiểm chứng tự động.

6. Nguồn tham khảo & Đọc thêm ​

  • VisuAlgo - BST & AVL Tree Simulator - Thử chèn, xóa và quan sát tự động xoay cân bằng.
  • Thomas H. Cormen et al., Introduction to Algorithms, Chương 12 (Binary Search Trees) và Chương 13 (Red-Black Trees).
Ảnh & sơ đồ
100%
Ảnh tài liệu được phóng to