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

Khởi tạo một đống khoảng thời gian

Một heap khoảng thời gian giống như một heap min-max được nhúng trong đó mỗi nút chứa hai phần tử. Nó được định nghĩa là một cây nhị phân hoàn chỉnh trong đó

  • Phần tử bên trái nhỏ hơn hoặc bằng phần tử bên phải.
  • Cả hai phần tử xác định một khoảng thời gian được đóng lại.
  • Khoảng thời gian được biểu thị bởi bất kỳ nút nào khác với nút gốc là khoảng con của nút mẹ.
  • Các phần tử ở phía bên trái đại diện cho một đống tối thiểu.
  • Các phần tử ở phía bên phải đại diện cho một đống tối đa.

Tùy thuộc vào số lượng phần tử, hai trường hợp được phép -

  • Số phần tử chẵn:Trong trường hợp này, mỗi nút chứa hai phần tử a và b, với a ≤ b. Sau đó, mọi nút được biểu diễn bằng khoảng [a, b].
  • Số phần tử lẻ:Trong trường hợp này, mỗi nút khác với nút cuối cùng chứa hai phần tử được biểu thị bằng khoảng [a, b] trong khi nút cuối cùng sẽ chứa một phần tử duy nhất và được biểu thị bằng khoảng [a, b] .

Các đống khoảng thời gian có thể được khởi tạo bằng cách thực hiện một chiến lược giống như chiến lược được sử dụng để khởi tạo các đống thông thường - hoạt động theo cách của chúng tôi từ dưới cùng của đống đến gốc để đảm bảo rằng mỗi cây con được biểu thị là một đống khoảng. Đối với mỗi cây con, trước tiên hãy sắp xếp thứ tự các phần tử trong gốc; sau đó lại chèn điểm cuối bên trái của gốc cây con này triển khai chiến lược chèn lại được sử dụng cho hàm removeMin, sau đó chèn lại điểm cuối bên phải của gốc cây con này để triển khai chiến lược được sử dụng cho hàm removeMax.