就像在这里所问的那样,我不明白我们如何在堆中找到已松弛顶点的索引。
从编程风格上来看,堆是一个抽象出优先队列细节的黑盒子。现在如果我们需要维护一个哈希表,将顶点键映射到堆数组中相应的索引,那么这需要在堆实现中完成,对吧?
但大多数标准堆不提供执行此映射的哈希表。
解决整个问题的另一种方法是无论如何都将已松弛的顶点添加到堆中。当我们提取最小值时,我们会得到最好的值。为了防止多次提取同一顶点,我们可以将其标记为“已访问”。
因此,我的确切问题是,在行业中处理此问题的典型方式是什么?
与我提到的方法相比,有哪些利弊?
从编程风格上来看,堆是一个抽象出优先队列细节的黑盒子。现在如果我们需要维护一个哈希表,将顶点键映射到堆数组中相应的索引,那么这需要在堆实现中完成,对吧?
但大多数标准堆不提供执行此映射的哈希表。
解决整个问题的另一种方法是无论如何都将已松弛的顶点添加到堆中。当我们提取最小值时,我们会得到最好的值。为了防止多次提取同一顶点,我们可以将其标记为“已访问”。
因此,我的确切问题是,在行业中处理此问题的典型方式是什么?
与我提到的方法相比,有哪些利弊?