🔗

Cargá un grafo con "✏️ Editar grafo" para empezar.

{{ graphError }}
📥 Cola de prioridad (aristas)
pesouv
(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
{{ nd.label }}
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)