Baum traversal in Java

Studiere ich für ein Vorstellungsgespräch und war die überprüfung Bäume, ich habe kein problem beim durchqueren Sie, aber ich habe eine Frage, die ich nicht in der Lage, Bild die richtige Antwort an:

Schreiben Sie eine Funktion zurückgibt, die einen Knoten in einem Baum mit zwei Parametern:
Zeiger auf den Wurzelknoten und die inorder-Traversierung Anzahl der Knoten
wollen wir wieder zurück. Die einzige information, gespeichert in dem Baum ist das
Anzahl der Kinder für jeden Knoten.

So weit, ich habe noch nicht einmal in der Lage zu Bild, warum ich die Pflege der gespeicherten Informationen in der Struktur (die Anzahl der Kinder). Andere als, dass, wenn wir annehmen, dass es ein Baum wie:

     5
  4     7
3  1  4

dann die Inorder traversal wäre 341547aber ich kann nicht herausfinden, den code zurück zu dem Knoten, ich will (aus Gründen der argument ich gehe davon aus, dass die inorder traversal-Nummer 2 - das heißt, ich will den Knoten mit dem Wert 1).

Ich habe versucht zu tun, eine rekursive Traversierung, aber ich am Ende einen das einschrauben der inneren Zähler, die ich hatte, also versuchte ich einen anderen Ansatz und versucht nur, alles auf einem Stapel, aber ich kann nicht herausfinden, wie man richtig tun. Bisher habe ich:

public int findNode(root, position){
   Stack<Integer> s = new Stack<Integer>();
   cNode = root; //cNode = current Node

   while(cNode.left != null)
      cNode = cNode.left;

     s.push(cNode);

   while(cNode.right != null)
     cNode = cNode.right;

   //stuck here.
}

Den rekursiven Ansatz war leichter, aber ich kann nicht herausfinden, wie um zu überprüfen, ob ich die # ich bin auf der Suche nach:

public int findNode(root, position){
    cNode = root;   
    if(cNode != null){ 
       findNode(cNode.left, position);
       System.out.print(cNode.data);
       findNode(cNode.right, position);
   }
}

Ich weiß, dieser durchläuft den Baum, aber es immer noch nicht genau das tun, was ich will. Jede Hilfe würde geschätzt werden.

"Die einzige information, gespeichert im Baum ist die Anzahl der Kinder für jeden Knoten", ich denke, Ihr Beispiel-Struktur ist falsch.. Auch, was die "inorder traversal-Nummer" genau?
"Schreiben Sie eine Funktion, die zurückgibt ein Knoten in einem Baum zwei Parameter" ein Knoten im Baum, welcher Knoten? ein Knoten, der den jeweiligen Wert ODER Knoten an einem bestimmten index (der index, wie in inorder traversal)???

InformationsquelleAutor Tsundoku | 2012-02-01

Schreibe einen Kommentar