Ở bài trước, chúng ta đã tìm hiểu sơ qua về cây đỏ đen – Red Black Tree. Còn trong bài viết này, ta sẽ cùng nhau đi tìm hiểu cách để thêm (insert) một node vào cây đỏ đen. Phần 1: Cây Đỏ Đen (Red-Black Tree) – Phần 1 (Giới thiệu) 1. Ôn lại […]
Cấu trúc dữ liệu
Cây Đỏ Đen (Red-Black Tree) – Phần 1 (Giới thiệu)
Cây đỏ đen (Red-Black Tree) là một loại cây tìm kiếm nhị phân tự cân bằng do Rudolf Bayer phát minh vào năm 1972. Điểm đặc biệt ở đây là mọi node của cây đều có thêm thuộc tính bit và nó quy định màu sắc của node đó (màu đỏ hoặc đen). Cái tên […]
Thuật toán Prim (Prim’s Algorithm)
Thuật toán Prim (tiếng anh: Prim’s algorithm) là một thuật toán tham lam được dùng để tìm cây khung nhỏ nhất (Minimum Spanning Tree – MST) của một đồ thị liên thông có trọng số. Thuật toán được tìm ra vào năm 1975 và được đặt tên theo nhà nghiên cứu khoa học máy tính […]
Phép toán thao tác bit trong C++ (Bitwise operation)
Trong bài viết này, chúng ta sẽ tìm hiểu về các phép toán thao tác bit (bitwise operation). Trong đơn vị logic số học (nằm trong CPU), các phép toán như: cộng, trừ, nhân và chia được thực hiện ở cấp độ bit. Để thực hiện các phép toán cấp độ bit trong C++, các […]
Cây AVL (AVL Tree) – Phần 2 (Deletion)
Phần 1 Ở bài này, mình sẽ hướng dẫn các bạn cách để “xóa Node – Deletion” trong cây AVL. Và đây cũng là phần cuối của series AVL Tree. Bởi lẽ bản chất của AVL Tree chính là BST (Binary Search Tree) ở dạng cân bằng, do đó ngoài Insert và Delete ra thì […]