Convertitore da lista di archi a matrice di adiacenza
Trasformi una lista di archi in una matrice di adiacenza con l'ordine dei nodi bene in vista: le tre righe A B, B C e C A danno una matrice simmetrica 3 per 3 con zeri sulla diagonale. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- A B B C C A
- Nodi
- A, B, C
- Numero di archi
- 3
Trasformi una lista compatta di archi in una matrice di adiacenza chiara senza costruire la tabella a mano. Inserisca una connessione per riga, scelga se il grafo è orientato e se ogni arco possiede un peso, quindi ottenga una matrice quadrata con l’ordine esplicito dei nodi. Il convertitore accetta righe separate da virgole o spazi, conserva i nodi isolati tramite un elenco facoltativo e dispone gli altri vertici secondo l’ordine stabile della prima occorrenza. È pensato per visualizzare algoritmi, svolgere lezioni ed esercizi e controllare rapidamente i dati di un grafo prima della programmazione.
Scriva la lista degli archi e scelga il modello del grafo
Inizi con un arco per riga. Per un grafo non pesato, scriva due nomi di nodo, come A B o A,B; il primo valore è l’origine e il secondo la destinazione. I nomi vengono mantenuti come etichette, quindi sono ammessi lettere, numeri e identificatori brevi, purché non contengano spazi o virgole.
Attivi la modalità orientata quando A verso B deve contrassegnare soltanto la riga A e la colonna B. La lasci disattivata quando lo stesso arco deve contrassegnare anche la riga B e la colonna A. Per un grafo pesato, attivi la relativa opzione e aggiunga su ogni riga un numero finito diverso da zero come terzo valore, per esempio A B 2.5.
Non è consentito mescolare righe pesate e non pesate, poiché il significato della matrice diventerebbe incoerente. Le righe vuote vengono ignorate; righe incomplete, valori aggiuntivi e archi duplicati generano un errore preciso invece di modificare il grafo senza avvisare.
Legga l’ordine dei nodi, le righe e le colonne
Una matrice di adiacenza ha senso solo se è noto l’ordine dei nodi; per questo il risultato restituisce sempre le etichette insieme alla matrice. Se Lei non fornisce un elenco di nodi, i vertici compaiono nell’ordine in cui vengono incontrati per la prima volta leggendo gli archi dall’alto verso il basso. La riga i descrive gli archi in uscita dal nodo i, mentre la colonna j rappresenta il nodo di destinazione j.
In una matrice non pesata, 1 indica una connessione e 0 la sua assenza. Nella modalità pesata, il peso sostituisce 1, mentre 0 continua a indicare che non è stato fornito alcun arco. I grafi non orientati producono una matrice simmetrica perché ogni arco occupa anche la cella speculare.
I grafi orientati possono essere asimmetrici, rendendo subito visibili le relazioni in entrata e in uscita. I cappi sono supportati e compaiono sulla diagonale principale. La risposta riporta inoltre le opzioni selezionate e il numero di archi inseriti.
Includa i nodi isolati ed eviti dati ambigui
Una lista di archi non può rivelare un vertice privo di collegamenti. Per conservare i nodi isolati, fornisca l’array facoltativo dei nodi nell’esatto ordine di visualizzazione desiderato. Questi nomi aprono l’ordine restituito; ogni estremo presente soltanto nel testo viene aggiunto alla prima occorrenza.
Il convertitore rifiuta i nomi ripetuti nell’array, perché etichette di riga duplicate renderebbero ambigua la matrice. Rifiuta anche gli archi duplicati anziché sommarne i pesi o lasciare prevalere l’ultima riga. In un grafo non orientato, A B e B A sono lo stesso arco; in un grafo orientato sono archi distinti e occupano celle diverse.
I pesi pari a zero vengono rifiutati perché la matrice riserva 0 all’assenza di connessione. Queste regole aiutano a insegnare visite, calcoli del grado, cammini minimi e rappresentazioni matriciali: ogni arco corrisponde a una cella prevedibile o a una coppia speculare.
Casi d'uso
Prepari una lezione sugli algoritmi
Converta un piccolo grafo nella matrice da usare per esercizi su visite, raggiungibilità o grado.
Controlli un grafo pesato
Verifichi che ogni arco pesato occupi la riga e la colonna previste prima di una dimostrazione sui cammini minimi.
Alimenti una visualizzazione del grafo
Trasformi gli archi incollati in un ordine stabile dei nodi e in una griglia numerica pronta per una tabella o mappa termica.
Domande frequenti
Quali formati di riga sono accettati?
Usi due valori separati da spazi o virgole per ogni arco non pesato e tre valori per ogni arco pesato.
Come vengono posizionati gli archi orientati?
Un arco da A a B occupa la riga A e la colonna B. La modalità orientata non compila la cella speculare.
Come posso includere un nodo isolato?
Aggiunga il nome all’array facoltativo dei nodi. L’array può anche stabilire l’ordine preferito di righe e colonne.
Perché i pesi pari a zero vengono rifiutati?
L’output usa 0 per rappresentare l’assenza di connessione; un arco con peso zero non sarebbe distinguibile da un arco assente.
Che cosa succede se lo stesso arco compare due volte?
Viene rifiutato con un messaggio preciso invece di essere unito o contato due volte. Righe incomplete, valori in più e un misto di righe con e senza peso vengono rifiutati allo stesso modo, così ogni cella della matrice ha un'origine chiara.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"text": "A B\nB C\nC A"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.edges_to_adjacency_matrix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chars | 200000 |
max_nodes | 500 |
max_edges | 10000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Includa i nodi isolati ed eviti dati ambigui
Tramite API, la stessa conversione deterministica costa $0.002 per richiesta e non utilizza rete, casualità o stato memorizzato.
Domande tecniche
Quanto costa la conversione tramite API?
Ogni richiesta API costa $0.002. La versione per browser può essere eseguita gratuitamente in locale.