Помогите в понимании примитивов algo pseudocode (как и в coreman и wiki) Prim's algorithm.неспособный понять алгоритм примитивов
MST-PRIM (G, w, r) {
for each u ∈ G.V
u.key = ∞
u.parent = NIL
r.key = 0
Q = G.V
while (Q ≠ ø)
//1
u = Extract-Min(Q)
for each v ∈ G.Adj[u]
if (v ∈ Q) and w(u,v) < v.key
v.parent = u
v.key = w(u,v)}
я могу понять до 1 или во время цикла, что r.key = 0 обеспечить neighours или adjacents корня сканируется первым, , но, как у уже принадлежит Q (очереди узлов до сих пор не включены в минимальное остовное дерево примитивов) и v также в Q, не поможет в генерации примитивов MST.
также оба coreman и, таким образом вики состояния
1. A = { (v, v.parent) : v ∈ V - {r} - Q }.
2. The vertices already placed into the minimum spanning tree are those in V−Q.
3. For all vertices v ∈ Q, if v.parent ≠ NIL, then v.key < ∞ and v.key is the weight of a light edge
Перед каждой итерации цикла в то время линий 6-11, (v, v.parent), соединяющей V :: к некоторой вершине, уже помещенной в минимальное остовное дерево.
как A является нашим MST, тогда как 1. поможет, поскольку v уже включен в наш MST (как показано v ∈ V - {r} - Q), почему тогда он должен быть включен.