Tôi đang tìm cách để duy trì một cây bao trùm tương đối cân bằng của đồ thị, khi tôi thêm các nút / cạnh mới vào biểu đồ.
Tôi có một đồ thị vô hướng bắt đầu như một nút duy nhất, "root".
Ở mỗi bước, tôi thêm vào biểu đồ một nút mới và một cạnh kết nối nó với biểu đồ, hoặc chỉ một cạnh mới, kết nối hai nút cũ. Khi tôi phát triển biểu đồ, tôi duy trì một cây bao trùm. Hầu hết thời gian, điều này có nghĩa là khi tôi thêm một nút và cạnh mới, tôi đặt nút mới là con của nút cũ mà nó kết nối.
Tôi không có quyền kiểm soát thứ tự các nút mới được thêm vào, vì vậy thuật toán xây dựng cây ở trên rõ ràng có thể dẫn đến các cây bao trùm mất cân bằng.
Có ai biết các heuristic trực tuyến sẽ giữ cho cây bao trùm "tương đối cân bằng", trong khi giảm thiểu số lượng công việc được thực hiện trong việc trồng lại cây không? Tôi có toàn quyền kiểm soát cấu trúc cây. Những gì tôi không kiểm soát là kết nối đồ thị hoặc thứ tự các nút mới được thêm vào.
Lưu ý rằng các phản hồi tiêu chuẩn của Google đối với các thuật ngữ như "cân bằng" "kéo dài" và "cây" dường như là cây nhị phân và cây B, không áp dụng cả hai. Các nút biểu đồ của tôi có thể có bất kỳ số lượng lân cận nào, vì vậy các nút cây có thể có bất kỳ số lượng con nào, không phải là 2 như cây nhị phân. Cây B duy trì sự cân bằng bằng cách thay đổi danh sách kề của chúng và tôi không thể thay đổi kết nối đồ thị.