Graphen: Anzahl Knoten // Knoten in Array speichern

Lazyyy

Mitglied
Hallo zusammen,
ich behandle zur Zeit das Thema Bäume.
Dabei sollte ich einmal die Anzahl der einzenen Nodes zählen welches wie folgt klappt.

Code:
public static int zaehle(TreeNode root) {
        if (root == null){
            return 0;
        }
        return 1 + zaehle(root.left) + zaehle(root.right);
    }

Wenn ich nun die Aufgabe auf einen Graphen Übertrage, welcher ein spezieller Baum ist komme ich so nicht mehr hin. Zum einen muss er sich merken welchen Knoten er schon gezählt hat und zum anderem muss er alle finden.
Wie kann ich das implementieren?


Und zusätzlich würde mich Interessieren ob ich / wie ich den Graphen bzw seine einzelnen Nodes in einem Array Abspeichern kann.

Vielen Dank schon einmal für die Hilfe.
 
einen Graphen Übertrage, welcher ein spezieller Baum

Was du dort geschrieben hast funktioniert nur für spezielle Bäume, nämlich Binärbäume. Ein Graph ist kein spezieller Baum, sondern ein Baum ist ein spezieller Graph. Oder hast du wirklich einen Graphen, der ein Baum ist? Für einen Baum im Allgemeinen kannst du wie in deinem Code-Schnipsel vorgehen, nur dass du alle Kinder betrachten musst (was für allgemeine Bäume auch mehr als zwei sein können). Wenn du eine Lösung für Graphern im Allgemeinen suchst, dann hat Flown dir ja schon nützliche Links gepostet.
 
Der Codeschnipsel wurde auf Binärbäume angewandt. Ah ok gut zu wissen das das anders herum gehört.

Und Die lösung soll für Graphen im Allgemeinen sein, wobei ich aus dem Wikipediaartikel nur semischlau werde.
Bzw. wäre eine zählung der Nodes im Allgemeinen Graphen weitaus komplexer.
 
In welcher Form ist der Graph denn gespeichert?
Wenn du z.B. eine Adjazenzmatrix hast, ist die Anzahl der Knoten gleich der Anzahl der Zeilen in der Matrix. Die zu ermitteln ist nun wahrlich nicht "komplex".
 

Zurück
Oben