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 […]
Cách tách code C++ thành file .h và .cpp
Tách code C++ thành các file.h và file.cpp? Chắc hẳn các bạn đã từng nghe qua. Trước tới giờ, chúng ta thường chỉ viết các đoạn code ngắn, hàm đơn giản hay chỉ là một chương trình nhỏ nên chỉ cần viết 1 file.cpp là đủ. Nhưng khi xây dựng một chương trình lớn thì […]
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ì […]
Cây AVL (AVL Tree) – Phần 1 (Insertion)
Cây AVL: Phần 2 Cây AVL (tiếng Anh là AVL Tree, AVL là viết tắt tên của các tác giả phát minh ra nó Adelson-Velsky và Landis). Cây AVL là một cây tìm kiếm nhị phân có khả năng tự cân bằng, điều đó giúp cho cây AVL tối ưu hơn rất nhiều so với […]