Ví dụ, tôi đã mô hình cây b-cây sau với mỗi nút chứa các cặp thẻ/giá trị. Cây cho biết ưu tiên (hoặc ưu tiên), với gốc cao nhất, xuống đến mức thấp nhất (nhưng đây là ứng dụng cụ thể). Tôi muốn kết hợp một phần cây mới vào phần tử cha, với phần mới chứa các cặp thẻ/giá trị có khả năng phổ biến, tất cả các con trỏ xuống nút ngay phía trên nút lá (một phần cây hoàn toàn trùng lặp mới sẽ không được hợp nhất). Ví dụ.C++ hợp nhất cây b-
hiện cặp cây (tag, giá trị) cho biết:
A,0
,----------,-------------,
B,1 B,2 B,3
,-------------,
C,1 C,2
cây mới sáp nhập:
A,0
|
B,3
,-----------,
C,1 C,2
cuối cùng cây sáp nhập:
A,0
,----------,-----------------,
B,1 B,2 B,3
,-------------, ,-----------,
C,1 C,2 C,1 C,2
Câu hỏi: có một thanh lịch C + + giải pháp để hợp nhất b-cây này bằng cách sử dụng std container, hoặc có thể với một thư viện như tăng? Cảm ơn.
Cách an toàn nhất để thực hiện việc này là thông qua chèn thủ công tất cả các mục của cây nhị phân thứ hai bên trong cột thứ nhất. Ngoài ra, hãy xem www.ccs.neu.edu/home/bradrui/index_files/parareorg.pdf. – izogfif
Có một (trong phát triển) boost.btree, không chắc chắn nếu nó sẽ giúp đỡ, nhưng ở đây nó là: https://github.com/Beman/Boost-Btree –
Bạn cũng có thể muốn kiểm tra việc thực hiện này của một b- cây: http://touc.org/btree.html – nevero