Convertisseur de liste d’arêtes en matrice d’adjacence
Transformez une liste de connexions, une arête par ligne, en matrice d'adjacence avec l'ordre des sommets indiqué : les trois lignes A B, B C et C A donnent une matrice symétrique de 3 sur 3 avec des zéros sur la diagonale. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- A B B C C A
- Nœuds
- A, B, C
- Nombre d'arcs
- 3
Transformez une liste compacte d’arêtes en une matrice d’adjacence lisible sans construire le tableau à la main. Saisissez une connexion par ligne, précisez si le graphe est orienté et si chaque arête possède un poids, puis obtenez une matrice carrée accompagnée de l’ordre explicite des sommets. Le convertisseur accepte les lignes séparées par des virgules ou des espaces, conserve les sommets isolés grâce à une liste facultative et classe les autres sommets selon un ordre stable de première apparition. Il convient à la visualisation d’algorithmes, aux cours, aux exercices corrigés et au contrôle rapide de données avant la programmation.
Rédigez la liste d’arêtes et choisissez le modèle du graphe
Commencez par inscrire une arête sur chaque ligne. Pour un graphe non pondéré, indiquez deux noms de sommets comme A B ou A,B ; la première valeur est la source et la seconde la destination. Les noms restent des étiquettes : lettres, nombres et identifiants courts sont donc acceptés, à condition de ne contenir ni espace ni virgule.
Activez le mode orienté lorsque A vers B doit marquer uniquement la ligne A et la colonne B. Laissez-le désactivé lorsque cette même arête doit également marquer la ligne B et la colonne A. Pour un graphe pondéré, activez l’option correspondante et ajoutez à chaque ligne un nombre fini non nul comme troisième valeur, par exemple A B 2.5.
Le mélange de lignes pondérées et non pondérées est refusé, car il rendrait la matrice incohérente. Les lignes vides sont ignorées, tandis que les lignes incomplètes, les valeurs superflues et les arêtes en double produisent une erreur précise plutôt qu’une modification silencieuse du graphe.
Interprétez l’ordre des sommets, les lignes et les colonnes
Une matrice d’adjacence n’a de sens que si l’ordre de ses sommets est connu. Le résultat fournit donc toujours leurs étiquettes avec la matrice. Si vous ne donnez pas de liste de sommets, ceux-ci apparaissent dans l’ordre de leur première rencontre lors de la lecture des arêtes de haut en bas.
La ligne i décrit les arêtes qui partent du sommet i, et la colonne j représente le sommet de destination j. Dans une matrice non pondérée, une connexion vaut 1 et une absence de connexion vaut 0. En mode pondéré, le poids remplace 1, tandis que 0 signifie toujours qu’aucune arête n’a été fournie.
Les graphes non orientés donnent une matrice symétrique, car chaque arête remplit aussi la cellule en miroir. Les graphes orientés peuvent être asymétriques, ce qui distingue immédiatement les relations entrantes et sortantes. Les boucles sont admises et figurent sur la diagonale principale.
La réponse rappelle également les options retenues et le nombre d’arêtes saisies.
Ajoutez les sommets isolés et écartez les ambiguïtés
Une liste d’arêtes ne permet pas de découvrir un sommet sans connexion. Pour conserver les sommets isolés, fournissez le tableau facultatif des sommets dans l’ordre exact d’affichage souhaité. Ces noms ouvrent l’ordre renvoyé ; toute extrémité présente uniquement dans le texte est ensuite ajoutée dès sa première apparition.
Le convertisseur refuse les noms répétés dans ce tableau, car des étiquettes de lignes identiques rendraient la matrice ambiguë. Il refuse aussi les arêtes en double au lieu d’additionner leurs poids ou de retenir la dernière ligne. Dans un graphe non orienté, A B et B A désignent la même arête ; dans un graphe orienté, ce sont deux arêtes distinctes placées dans des cellules différentes.
Les poids nuls sont refusés, puisque la matrice réserve 0 à l’absence de connexion. Ces règles facilitent l’enseignement des parcours, des degrés, des plus courts chemins et des représentations matricielles : chaque arête correspond à une cellule prévisible ou à une paire en miroir.
Cas d’usage
Préparez un cours d’algorithmique
Convertissez un petit graphe en matrice pour les exercices de parcours, d’accessibilité ou de calcul des degrés.
Contrôlez un graphe pondéré
Vérifiez que chaque arête pondérée occupe la ligne et la colonne prévues avant une démonstration de plus court chemin.
Alimentez une visualisation de graphe
Transformez des arêtes collées en un ordre stable des sommets et une grille numérique directement exploitable.
Questions fréquentes
Quels formats de ligne sont acceptés ?
Utilisez deux valeurs séparées par des espaces ou des virgules pour une arête non pondérée, et trois pour une arête pondérée.
Comment les arêtes orientées sont-elles placées ?
Une arête de A vers B est placée à la ligne A et à la colonne B. Le mode orienté ne remplit pas la cellule en miroir.
Comment inclure un sommet isolé ?
Ajoutez son nom au tableau facultatif des sommets. Ce tableau peut aussi définir l’ordre souhaité des lignes et colonnes.
Pourquoi les poids nuls sont-ils refusés ?
La sortie emploie 0 pour représenter l’absence de connexion ; une arête de poids nul serait donc indiscernable d’une arête absente.
Que se passe-t-il si la même arête apparaît deux fois ?
Elle est refusée avec un message précis au lieu d'être fusionnée ou comptée deux fois. Les lignes auxquelles il manque une valeur, les valeurs en trop et le mélange de lignes pondérées et non pondérées sont refusés de la même façon, pour que chaque case de la matrice ait une origine claire.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"text": "A B\nB C\nC A"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.edges_to_adjacency_matrix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_chars | 200000 |
max_nodes | 500 |
max_edges | 10000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Ajoutez les sommets isolés et écartez les ambiguïtés
Via l’API, cette conversion déterministe coûte $0.002 par requête et n’utilise ni réseau, ni hasard, ni état stocké.
Questions techniques
Quel est le coût de la conversion par API ?
Chaque requête API coûte $0.002. La version pour navigateur peut être exécutée gratuitement en local.