{{ graphError }}
📥 Cola de prioridad (aristas)
| peso | u | v | |
|---|---|---|---|
| (vacía) | |||
| {{ e.p }} | {{ e.u }} | {{ e.v }} | mín ✅ 🚫 |
🔗 Union-Find: padre[]
| v | {{ l }} |
|---|---|
| padre[v] | {{ currentStep.padre[l] }} |
union(u, v): padre[find(v)] ← find(u)🌳 Bosque de padres
Cada flecha va de un nodo a su padre; las raíces están arriba.
📋 Seguimiento por iteración
| Iteración | Arista ai | w(ai) | find(u) / find(v) | Subárboles | W(MST) |
|---|---|---|---|---|---|
| {{ row.discarded ? '—' : row.iter }} | {{ row.edge ? `(${row.edge.u}, ${row.edge.v})` : '—' }} | {{ row.edge ? row.edge.p : '—' }} | {{ row.roots ? `${row.roots.ru} ${row.discarded ? '=' : '≠'} ${row.roots.rv}` : '—' }} | {{ row.sets.map(s => fmtSet(s)).join(', ') }} | {{ row.total }} |
💻 Pseudocódigo
{{ line }}
🔍 Explicación
Cargá un grafo y presioná ▶️ o "Paso siguiente" para empezar.
{{ currentStep.badge.icon }} {{ currentStep.badge.text }}
Paso {{ currentStepIndex + 1 }} de {{ steps.length }}
📌 {{ pinnedInfo ? `Nodo ${pinned}` : 'Nodo fijado' }}
- {{ line }}
Hacé clic en un nodo del grafo para seguir su estado paso a paso.
⏱️ Complejidad:
| {{ h }} | |
|---|---|
| {{ r[0] }} |
Leyenda
- Vértice solo en su subárbol
- Mismo color: mismo subárbol (conjunto del Union-Find)
- Arista extraída, sus extremos u y v / camino que recorre find
- padre[] que cambia con el union / fila en curso
- Arista del MST
- - - - Arista descartada (formaba un ciclo)