Readonly
linksMax heap with links and their priorities
Readonly
urlData structure to track URLs in the queue and allow for constant time lookup of links in queue based on link URL
Changes all priorities in queue in O(n + m*log m ) time, with n is size of urlPriorities entry and m size of the queue. Will only update priorities of urls that are actually in queue.
A record with url and new priority
A link queue based on priority, using binary heap.