Convertidor de lista de aristas a matriz de adyacencia
Convierta una lista de aristas en una matriz de adyacencia con el orden de los nodos a la vista: las tres líneas A B, B C y C A dan una matriz simétrica de 3 por 3 con ceros en la diagonal. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- A B B C C A
- Nodos
- A, B, C
- Número de aristas
- 3
Convierta una lista compacta de aristas en una matriz de adyacencia clara sin elaborar la tabla a mano. Introduzca una conexión por línea, indique si el grafo es dirigido y si cada arista tiene peso, y obtenga una matriz cuadrada con un orden explícito de nodos. El convertidor admite líneas separadas por comas o espacios, conserva nodos aislados mediante una lista opcional y aplica a los demás vértices un orden estable según su primera aparición. Está pensado para visualizar algoritmos, impartir clases, resolver ejercicios y revisar datos de grafos antes de programar.
Escriba la lista de aristas y elija el modelo de grafo
Comience con una arista por línea. Para un grafo no ponderado, escriba dos nombres de nodo, como A B o A,B; el primer valor es el origen y el segundo, el destino. Los nodos se conservan como etiquetas, por lo que se admiten letras, números e identificadores breves, siempre que el nombre no contenga espacios ni comas.
Active el modo dirigido cuando A hacia B deba marcar únicamente la fila A y la columna B. Déjelo desactivado cuando la misma arista también deba marcar la fila B y la columna A. Para un grafo ponderado, active el modo correspondiente y añada en cada línea un número finito distinto de cero como tercer valor, por ejemplo A B 2.5.
No se permite mezclar filas ponderadas y no ponderadas, pues el significado de la matriz sería incoherente. Las líneas vacías se ignoran; las filas incompletas, los valores sobrantes y las aristas duplicadas generan un error específico en vez de modificar el grafo silenciosamente.
Interprete el orden de nodos, las filas y las columnas
Una matriz de adyacencia solo tiene sentido si se conoce el orden de sus nodos; por ello, el resultado siempre devuelve las etiquetas junto con la matriz. Si usted no proporciona una lista de nodos, los vértices aparecen según se encuentran por primera vez al leer las aristas de arriba abajo. La fila i describe las aristas que salen del nodo i y la columna j representa el nodo de destino j.
En una matriz no ponderada, una conexión se señala con 1 y su ausencia con 0. En el modo ponderado, el peso sustituye al 1, mientras que 0 sigue indicando que no se proporcionó ninguna arista. Los grafos no dirigidos producen una matriz simétrica porque cada arista ocupa también la celda reflejada.
Los dirigidos pueden ser asimétricos, lo que permite distinguir enseguida relaciones entrantes y salientes. Se admiten bucles propios, que aparecen en la diagonal principal. La respuesta también indica las opciones elegidas y el número de aristas de entrada.
Incluya nodos aislados y evite datos ambiguos
Una lista de aristas no puede revelar un vértice sin conexiones. Para conservar nodos aislados, proporcione la matriz opcional de nodos en el orden exacto que desee mostrar. Esos nombres encabezan el orden devuelto y cualquier extremo presente solo en el texto se añade cuando aparece por primera vez.
El convertidor rechaza nombres repetidos en esa matriz porque dos filas con la misma etiqueta resultarían ambiguas. También rechaza aristas duplicadas en lugar de sumar sus pesos o aceptar la última línea. En un grafo no dirigido, A B y B A representan la misma arista; en uno dirigido son aristas distintas y ocupan celdas diferentes.
Los pesos cero se rechazan porque la matriz reserva 0 para indicar que no hay conexión. Estas reglas facilitan la enseñanza de recorridos, cálculos de grado, caminos mínimos y representaciones matriciales: cada arista puede rastrearse hasta una celda o pareja reflejada predecible.
Qué puede hacer con ella
Prepare una clase de algoritmos
Convierta un grafo pequeño en la matriz que el alumnado utilizará para ejercicios de recorrido, alcanzabilidad o grado.
Revise un grafo ponderado
Compruebe que cada arista ponderada ocupa la fila y columna previstas antes de una demostración de caminos mínimos.
Alimente una visualización de grafos
Transforme aristas pegadas en un orden estable de nodos y una cuadrícula numérica lista para una tabla o mapa de calor.
Preguntas frecuentes
¿Qué formatos de línea se admiten?
Use dos valores separados por espacios o comas para cada arista no ponderada, y tres para cada arista ponderada.
¿Cómo se colocan las aristas dirigidas?
Una arista de A a B se coloca en la fila A y la columna B. El modo dirigido no completa la celda reflejada.
¿Cómo puedo incluir un nodo aislado?
Añada su nombre a la lista opcional de nodos. Esa lista también permite establecer el orden preferido de filas y columnas.
¿Por qué se rechazan los pesos cero?
La salida utiliza 0 para representar la ausencia de conexión; por ello, una arista de peso cero no podría distinguirse de una arista ausente.
¿Qué ocurre si la misma arista aparece dos veces?
Se rechaza con un mensaje concreto en lugar de fusionarse o contarse dos veces. Las filas incompletas, los valores de más y la mezcla de líneas con y sin peso se rechazan igual, para que cada celda de la matriz tenga un origen claro.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/edges-to-adjacency-matrix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"A B\nB C\nC A"}'const res = await fetch("https://api.kit.forhosting.com/dev/edges-to-adjacency-matrix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "A B\nB C\nC A"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/edges-to-adjacency-matrix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "A B\nB C\nC A"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/edges-to-adjacency-matrix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"A B\\nB C\\nC A"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"A B\nB C\nC A"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/edges-to-adjacency-matrix", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "A B\nB C\nC A"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.edges_to_adjacency_matrix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_chars | 200000 |
max_nodes | 500 |
max_edges | 10000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Incluya nodos aislados y evite datos ambiguos
En la API, la misma conversión determinista cuesta $0.002 por solicitud y no usa red, azar ni estado almacenado.
Preguntas técnicas
¿Cuánto cuesta la conversión mediante API?
Cada solicitud a la API cuesta $0.002. La versión para navegador puede ejecutarse localmente de forma gratuita.