Die Traversierung eines Baumes rekursiv in die Tiefe, erste Probleme

Ich versuche zu durchqueren, ein Baum mit ANTLR tree-Befehle und Rekursion. Der code, den ich derzeit habe ist:

public void traverseTree(Tree tree){
        int counter = 0;
        System.out.println(tree.toString());
        if (tree.getChildCount() > 0 && tree.getChild(0) != null){
            System.out.println(tree.toString() + counter++);
            tree = tree.getChild(0);
            traverseTree(tree);

        }
        while (tree.getParent().getChild(tree.getChildIndex() + 1) != null){
            System.out.println(tree.toString() + counter++);
            tree = tree.getParent().getChild(tree.getChildIndex() + 1);
            traverseTree(tree);

        }
    }

Aber gut, es funktioniert nicht. Ich bin immer in der Menge der Einträge in der Baumstruktur, aber keine offensichtliche Ordnung. Kann jemand sehen, wo ich bin mache ich falsch?

Dank.

EDIT:

Kommentar, den ich gemacht unten das sollte hier beginnen mit:

Sorry, sollte ich entfernte die print-Anweisungen, Sie waren nur da, um zu versuchen und zu Debuggen. Das problem ich bin der Begegnung ist, dass es nur die Suche der Knoten beginnt es und alle Geschwister des Knotens, sollte es nicht gehen eine Ebene nach oben, aber es funktioniert, druckt er alles. (Ich werde Bearbeiten Sie diese in der main, es sollte dort gewesen sein, um mit zu beginnen, sorry).

Ich es geschafft, der code funktioniert schließlich wie so:

public void traverseTree(Tree tree){
        System.out.println(tree);
        if (tree.getChild(0) != null){
            traverseTree(tree.getChild(0));
        }
        if(tree.getParent().getChildCount() > 1){
            if(tree.getParent().getChild(tree.getChildIndex() + 1) != null)
            traverseTree(tree.getParent().getChild(tree.getChildIndex() + 1));
        }
    }
"In der Tiefe zuerst"... meinst du level um? Reverse level order? Ich bin verwirrt.. Andere Möglichkeiten sind die preorder, inorder, postorder

InformationsquelleAutor djcmm476 | 2012-03-15

Schreibe einen Kommentar