Computer >> Máy Tính >  >> Lập trình >> Lập trình

Hòa tan hai HBLT tối đa trong cấu trúc dữ liệu


Chiến lược meld được thực hiện dễ dàng bằng cách sử dụng đệ quy. Giả sử A và B là hai HBLT, sẽ được kết hợp với nhau. Nếu một trong số chúng trống, thì chỉ cần tạo một cái khác là kết quả cuối cùng. Nếu không có HBLT trống ở đó, thì chúng ta phải so sánh các phần tử trong hai gốc. Gốc có phần tử lớn hơn trở thành gốc của HBLT được kết hợp.

Giả sử A có căn lớn hơn. Và đó là cây con bên trái của nó là L. Giả sử C là HBLT tối đa, kết quả của việc ghép cây con bên phải của A và HBLT B. HBLT cuối cùng sẽ có A là gốc, và L và C là cây con của nó. Nếu giá trị s của L nhỏ hơn giá trị của C, thì C về cơ bản là cây con bên trái. Nếu không, L sẽ là cây con bên trái.

Giả sử chúng ta có hai yếu tố như -

Hòa tan hai HBLT tối đa trong cấu trúc dữ liệu

Chúng tôi muốn kết hợp chúng. (Nút đang giữ giá trị, số bên ngoài của nút là các giá trị của nút tương ứng.)

Bây giờ chúng ta hãy xem làm thế nào để kết hợp. Giả sử 7 được thêm vào làm con bên phải của 9, nhưng ở đây, s (L) của 9 là 0 và s (R) của 9 là 1, vì vậy chúng sẽ được hoán đổi và 7 sẽ là con bên phải của nó.

Hòa tan hai HBLT tối đa trong cấu trúc dữ liệu

Ví dụ khác -

Hòa tan hai HBLT tối đa trong cấu trúc dữ liệu

Tạm thời thêm HBLT nhỏ hơn vào bên phải HBLT lớn hơn.

Hòa tan hai HBLT tối đa trong cấu trúc dữ liệu

Điều này không duy trì tài sản của HBLT,

Hòa tan hai HBLT tối đa trong cấu trúc dữ liệu