Conversor de lista de arestas para matriz de adjacência
Transforme uma lista de arestas em uma matriz de adjacência com a ordem dos nós à vista: as três linhas A B, B C e C A geram uma matriz simétrica de 3 por 3 com zeros na diagonal. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- A B B C C A
- Nós
- A, B, C
- Número de arestas
- 3
Converta uma lista compacta de arestas em uma matriz de adjacência clara sem montar a tabela manualmente. Informe uma conexão por linha, escolha se o grafo é direcionado e se cada aresta tem peso e receba uma matriz quadrada com a ordem explícita dos nós. O conversor aceita linhas separadas por vírgulas ou espaços, preserva nós isolados por meio de uma lista opcional e usa a ordem estável da primeira ocorrência para os demais vértices. Ele foi criado para visualização de algoritmos, aulas, exercícios resolvidos e verificações rápidas dos dados de um grafo antes da programação.
Escreva a lista de arestas e escolha o modelo do grafo
Comece com uma aresta em cada linha. Em um grafo não ponderado, escreva dois nomes de nós, como A B ou A,B; o primeiro valor é a origem e o segundo é o destino. Os nomes são mantidos como rótulos, portanto letras, números e identificadores curtos funcionam desde que não contenham espaços nem vírgulas.
Ative o modo direcionado quando A para B deve marcar somente a linha A e a coluna B. Deixe-o desativado quando a mesma aresta também deve marcar a linha B e a coluna A. Para um grafo ponderado, ative essa opção e acrescente em todas as linhas um número finito diferente de zero como terceiro valor, por exemplo A B 2.5.
Não é permitido misturar linhas ponderadas e não ponderadas, pois isso tornaria incoerente o significado da matriz. Linhas vazias são ignoradas; linhas incompletas, valores extras e arestas duplicadas geram um erro específico, sem alterar silenciosamente o grafo.
Entenda a ordem dos nós, as linhas e as colunas
Uma matriz de adjacência só faz sentido quando a ordem dos nós é conhecida. Por isso, o resultado sempre apresenta os rótulos ao lado da matriz. Se você não fornecer uma lista de nós, os vértices aparecem na ordem em que são encontrados pela primeira vez durante a leitura das arestas, de cima para baixo.
A linha i descreve as arestas que saem do nó i, e a coluna j representa o nó de destino j. Em uma matriz não ponderada, 1 indica uma conexão e 0 indica sua ausência. No modo ponderado, o peso substitui 1, enquanto 0 continua significando que nenhuma aresta foi informada.
Grafos não direcionados produzem uma matriz simétrica porque cada aresta também preenche sua célula espelhada. Grafos direcionados podem ser assimétricos, deixando claras as relações de entrada e saída. Laços são aceitos e aparecem na diagonal principal.
A resposta também informa as opções selecionadas e a quantidade de arestas recebidas.
Inclua nós isolados e evite dados ambíguos
Uma lista de arestas não revela um vértice sem conexões. Para preservar nós isolados, forneça o array opcional de nós exatamente na ordem em que deseja exibi-los. Esses nomes iniciam a ordem retornada, e qualquer extremidade encontrada apenas no texto é acrescentada na primeira ocorrência.
O conversor rejeita nomes repetidos nesse array, pois rótulos de linha duplicados tornariam a matriz ambígua. Arestas repetidas também são rejeitadas, em vez de terem seus pesos somados ou de deixar a última linha prevalecer. Em um grafo não direcionado, A B e B A são a mesma aresta; em um grafo direcionado, são arestas distintas e ocupam células diferentes.
Pesos iguais a zero não são aceitos porque a matriz reserva 0 para a ausência de conexão. Essas regras ajudam no ensino de percursos, cálculos de grau, caminhos mínimos e representações matriciais, pois cada aresta corresponde a uma célula previsível ou a um par espelhado.
Casos de uso
Prepare uma aula de algoritmos
Converta um grafo pequeno na matriz que a turma usará em exercícios de percurso, alcançabilidade ou grau.
Confira um grafo ponderado
Verifique se cada aresta ponderada está na linha e coluna esperadas antes de uma demonstração de caminho mínimo.
Abasteça uma visualização de grafos
Transforme arestas coladas em uma ordem estável de nós e em uma grade numérica pronta para tabela ou mapa de calor.
Perguntas frequentes
Quais formatos de linha são aceitos?
Use dois valores separados por espaços ou vírgulas em cada aresta não ponderada, ou três valores em cada aresta ponderada.
Como as arestas direcionadas são posicionadas?
Uma aresta de A para B ocupa a linha A e a coluna B. O modo direcionado não preenche a célula espelhada.
Como posso incluir um nó isolado?
Adicione o nome ao array opcional de nós. Esse array também pode definir a ordem preferida das linhas e colunas.
Por que pesos iguais a zero são rejeitados?
A saída usa 0 para representar a ausência de conexão; assim, uma aresta de peso zero seria indistinguível de uma aresta ausente.
O que acontece se a mesma aresta aparecer duas vezes?
Ela é recusada com uma mensagem específica, em vez de ser mesclada ou contada duas vezes. Linhas incompletas, valores sobrando e a mistura de linhas com e sem peso são recusados do mesmo jeito, para que cada célula da matriz tenha uma origem clara.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"text": "A B\nB C\nC A"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.edges_to_adjacency_matrix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chars | 200000 |
max_nodes | 500 |
max_edges | 10000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Inclua nós isolados e evite dados ambíguos
Pela API, a mesma conversão determinística custa US$ 0,002 por solicitação e não usa rede, aleatoriedade nem estado armazenado.
Perguntas técnicas
Quanto custa a conversão pela API?
Cada solicitação à API custa US$ 0,002. A versão no navegador pode ser executada localmente de graça.