Mã giả cho hàng đợi Brodal


12

Tôi đang cố gắng tìm thêm tài nguyên về đống Brodal . Tất cả những gì tôi tìm thấy là một triển khai haskell của đống Brodal-Okasaki , nhưng tôi nghĩ rằng chúng là những đống lệch , điều này có đúng không? Hơn nữa, tôi không biết chữ ở Haskell nên không giúp được gì nhiều. Có ai có (hoặc biết) một triển khai hàng đợi Brodal trong mã giả, C, C ++, Python không?

Ngoài ra xin vui lòng sửa nếu các giả định của tôi ở trên là sai.


3
Bạn đang tìm cách triển khai hàng đợi Brodal một cách cụ thể, hay bạn đang tìm kiếm một triển khai hiệu quả của hàng đợi ưu tiên? Brodal đã đề cập trong phần kết luận của bài báo của mình rằng chúng không thực tế nếu không có một số nghiên cứu sâu hơn trong khu vực. Bài viết của ông đã được trích dẫn rộng rãi, có thể một cái gì đó hữu ích? Giới thiệu về thuật toán CLR có một phần về hàng đợi ưu tiên, nhưng nó tham chiếu công việc sớm hơn nhiều trong hàng đợi ưu tiên.
Jay Elston

2
Hàng đợi Brodal ban đầu sử dụng phép gán phá hủy, vì vậy phiên bản Haskell phải có một số sửa đổi.
Fred Foo

Câu trả lời:


2

Việc thực hiện Haskell dựa trên heap Brodal-Okasaki chức năng và bạn đã đúng, đó là một biến thể của các đống xiên. Bài viết được viết rất rõ ràng, vì vậy nó sẽ là một tài nguyên tốt.

Về triển khai, cũng có một triển khai trong Scala như một phần của thư viện scalaz.


1

Đây là một câu trả lời một phần vì tôi chưa tìm ra cách dịch mã thành thứ gì đó không phải là Haskell. Lý do theo như tôi có thể nói với họ là phải sử dụng Haskell là Haskell lười biếng. Đống Brodal-Okasaki cần được thực hiện theo kiểu lười biếng từ tờ giấy. Vì vậy, những gì bạn cần là một cách cung cấp chức năng đó cho ngôn ngữ khác cùng với bất kỳ yêu cầu nào khác (chẳng hạn như cấu trúc dữ liệu chức năng thuần túy) mà BO Heap có thể cần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.