Tôi đã tạo một đống nhị phân, đại diện cho hàng đợi ưu tiên. Nó chỉ là thuật toán nổi tiếng cổ điển. Heap này lên lịch trình theo thứ tự thời gian của các sự kiện khác nhau (khóa sắp xếp là thời gian).Làm thế nào để bảo toàn thứ tự các phần tử có cùng mức độ ưu tiên trong hàng đợi ưu tiên được thực hiện dưới dạng đống nhị phân?
Nó hỗ trợ 2 thao tác: Chèn và Xóa. Mỗi khóa của nút của heap lớn hơn hoặc bằng mỗi nút con của nó. Tuy nhiên, việc thêm các sự kiện với cùng một khóa không bảo vệ thứ tự chúng được thêm vào, bởi vì mỗi lần sau khi Remove hoặc Insert được gọi, các thủ tục heap-up và heap-down phá vỡ thứ tự.
Câu hỏi của tôi là: điều gì cần được thay đổi trong thuật toán cổ điển để duy trì thứ tự của các nút có cùng mức độ ưu tiên?
giả sử bạn thêm phần tử mới có mức độ ưu tiên đã tồn tại .. thứ gì sẽ là thứ tự? –
thêm một trường khác gọi là thứ tự chèn (long long) và nó luôn được tăng lên khi bạn chèn. Vì vậy, bạn kết thúc lên w/cặp cho khóa cuối cùng: ưu tiên + chèn thứ tự – bestsss