Kantenliste in eine Adjazenzmatrix umwandeln
Machen Sie aus einer Kantenliste eine Adjazenzmatrix mit ausgewiesener Knotenreihenfolge: Die drei Zeilen A B, B C und C A ergeben eine symmetrische 3-mal-3-Matrix mit Nullen auf der Diagonale. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- A B B C C A
- Knoten
- A, B, C
- Anzahl der Kanten
- 3
Wandeln Sie eine kompakte Kantenliste in eine übersichtliche Adjazenzmatrix um, ohne die Tabelle von Hand aufzubauen. Geben Sie pro Zeile eine Verbindung ein, wählen Sie einen gerichteten oder ungerichteten Graphen und bei Bedarf Kantengewichte. Sie erhalten eine quadratische Matrix mit eindeutiger Knotenreihenfolge. Der Konverter verarbeitet durch Kommas oder Leerzeichen getrennte Zeilen, bewahrt isolierte Knoten über eine optionale Liste und ordnet alle weiteren Knoten stabil nach ihrem ersten Auftreten. Er eignet sich für Algorithmusvisualisierungen, Unterricht, Übungsaufgaben und schnelle Prüfungen von Graphdaten vor der Programmierung.
Schreiben Sie die Kantenliste und wählen Sie das Graphmodell
Beginnen Sie mit einer Kante pro Zeile. Für einen ungewichteten Graphen schreiben Sie zwei Knotennamen wie A B oder A,B; der erste Wert ist der Ausgangs-, der zweite der Zielknoten. Die Namen bleiben als Beschriftungen erhalten.
Buchstaben, Zahlen und kurze Bezeichner sind daher möglich, sofern ein Name weder Leerzeichen noch Kommas enthält. Aktivieren Sie den gerichteten Modus, wenn A nach B nur Zeile A und Spalte B markieren soll. Lassen Sie ihn ausgeschaltet, wenn dieselbe Kante außerdem Zeile B und Spalte A markieren soll.
Für einen gewichteten Graphen aktivieren Sie die Gewichtsoption und ergänzen in jeder Zeile als dritten Wert eine endliche Zahl ungleich null, beispielsweise A B 2.5. Gewichtete und ungewichtete Zeilen dürfen nicht gemischt werden, da die Matrix sonst keine einheitliche Bedeutung hätte. Leerzeilen werden ignoriert; unvollständige Zeilen, zusätzliche Werte und doppelte Kanten lösen eine konkrete Eingabemeldung aus, statt den Graphen unbemerkt zu verändern.
Lesen Sie Knotenreihenfolge, Zeilen und Spalten
Eine Adjazenzmatrix ist nur zusammen mit ihrer Knotenreihenfolge eindeutig. Deshalb enthält das Ergebnis neben der Matrix stets die Knotenbeschriftungen. Wenn Sie keine Knotenliste vorgeben, erscheinen die Knoten in der Reihenfolge, in der sie beim Lesen der Kanten von oben nach unten erstmals vorkommen.
Zeile i beschreibt die vom Knoten i ausgehenden Kanten, Spalte j steht für den Zielknoten j. In einer ungewichteten Matrix kennzeichnet 1 eine Verbindung und 0 eine fehlende Verbindung. Im gewichteten Modus steht anstelle der 1 das Kantengewicht; 0 bedeutet weiterhin, dass keine Kante angegeben wurde.
Ungerichtete Graphen ergeben eine symmetrische Matrix, weil jede Kante auch die gespiegelte Zelle füllt. Gerichtete Graphen können asymmetrisch sein, wodurch ein- und ausgehende Beziehungen sofort erkennbar werden. Schleifen sind zulässig und stehen auf der Hauptdiagonalen.
Außerdem meldet das Ergebnis die gewählten Optionen und die Anzahl der eingegebenen Kanten.
Erfassen Sie isolierte Knoten und vermeiden Sie Mehrdeutigkeit
Eine Kantenliste kann einen Knoten ohne Verbindungen nicht sichtbar machen. Um isolierte Knoten zu erhalten, geben Sie das optionale Knotenarray genau in der gewünschten Anzeigereihenfolge an. Diese Namen beginnen die ausgegebene Reihenfolge; Endpunkte, die nur im Kantentext stehen, werden bei ihrem ersten Auftreten angefügt.
Wiederholte Namen in diesem Array weist der Konverter zurück, weil identische Zeilenbeschriftungen die Matrix mehrdeutig machen würden. Auch doppelte Kanten werden abgelehnt, statt Gewichte zu addieren oder die letzte Zeile gewinnen zu lassen. In einem ungerichteten Graphen sind A B und B A dieselbe Kante; in einem gerichteten Graphen sind es getrennte Kanten in unterschiedlichen Zellen.
Gewichte von null sind nicht erlaubt, weil die Matrix 0 für eine fehlende Verbindung reserviert. Diese Regeln unterstützen den Unterricht zu Traversierung, Knotengraden, kürzesten Wegen und Matrixdarstellungen: Jede Kante lässt sich einer vorhersehbaren Zelle oder einem gespiegelten Paar zuordnen.
Anwendungsfälle
Bereiten Sie eine Algorithmusstunde vor
Wandeln Sie einen kleinen Graphen in die Matrix für Übungen zu Traversierung, Erreichbarkeit oder Knotengraden um.
Prüfen Sie einen gewichteten Graphen
Kontrollieren Sie vor einer Kürzeste-Wege-Demonstration, ob jede gewichtete Kante in der richtigen Zeile und Spalte steht.
Speisen Sie eine Graphvisualisierung
Erzeugen Sie aus eingefügten Kanten eine stabile Knotenreihenfolge und ein direkt darstellbares Zahlenraster.
Häufige Fragen
Welche Zeilenformate werden akzeptiert?
Verwenden Sie für ungewichtete Kanten zwei durch Leerzeichen oder Kommas getrennte Werte und für gewichtete Kanten drei Werte.
Wie werden gerichtete Kanten eingetragen?
Eine Kante von A nach B steht in Zeile A und Spalte B. Im gerichteten Modus wird die gespiegelte Zelle nicht gefüllt.
Wie kann ich einen isolierten Knoten aufnehmen?
Fügen Sie seinen Namen dem optionalen Knotenarray hinzu. Dieses Array kann zugleich die gewünschte Zeilen- und Spaltenreihenfolge festlegen.
Warum sind Kantengewichte von null unzulässig?
Die Ausgabe verwendet 0 für eine fehlende Verbindung. Eine Kante mit Gewicht null wäre daher nicht von einer fehlenden Kante zu unterscheiden.
Was passiert, wenn dieselbe Kante zweimal vorkommt?
Sie wird mit einer konkreten Meldung abgelehnt, statt zusammengeführt oder doppelt gezählt zu werden. Unvollständige Zeilen, überzählige Werte und gemischte Zeilen mit und ohne Gewicht werden ebenso abgelehnt, damit jede Zelle der Matrix einen klaren Ursprung hat.
Kann eine Kante auf denselben Knoten zurückführen?
Ja. Schleifen werden unterstützt und erscheinen auf der Hauptdiagonale der Matrix, also in Zeile und Spalte desselben Knotens. So sehen Sie auf einen Blick, welche Knoten mit sich selbst verbunden sind.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem 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)Beispiel-Anfrage
{
"text": "A B\nB C\nC A"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.edges_to_adjacency_matrix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_chars | 200000 |
max_nodes | 500 |
max_edges | 10000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Erfassen Sie isolierte Knoten und vermeiden Sie Mehrdeutigkeit
Über die API kostet dieselbe deterministische Umwandlung $0.002 pro Anfrage und nutzt weder Netzwerk noch Zufall oder gespeicherten Zustand.
Technische Fragen
Was kostet die Umwandlung per API?
Jede API-Anfrage kostet $0.002. Die Browserversion kann kostenlos lokal ausgeführt werden.