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

Xóa phần tử tùy ý khỏi HBLT tối đa trong cấu trúc dữ liệu


Xóa các nút tùy ý khỏi HBLT Tối đa hoặc Tối thiểu không phải là thao tác chuẩn. cho hàng đợi Ưu tiên hoặc HBLT. Nếu chúng ta muốn xóa một nút nói K khỏi HBLT, chúng ta phải tuân theo các quy tắc sau.

  • Tách cây con gốc tại K, khỏi cây và thay thế nó bằng tổ hợp các cây con của nút K.

  • Cập nhật các giá trị của s từ đường dẫn từ K đến gốc và hoán đổi các cây con trên đường dẫn này nếu cần để duy trì thuộc tính của HBLT.

Để cập nhật giá trị s từ K sang gốc, chúng ta cần con trỏ cha cho mỗi nút. Thao tác cập nhật giá trị s cho các nút hướng lên sẽ dừng lại khi chúng ta thấy rằng giá trị s không bị thay đổi. Các giá trị s đã thay đổi, phải tạo thành một chuỗi tăng dần. Bởi vì mỗi nút phải nhiều hơn nút đứng trước một. Vì giá trị s tối đa là O (log n) và tất cả các giá trị s đều dương, nên gặp các nút O (log n) tối đa trong lần cập nhật. Mỗi nút lấy O (1) để cập nhật các giá trị. Vì vậy, độ phức tạp tổng thể của việc xóa một nút tùy ý là O (log n)