Suche nach Pfad Zwischen Zwei Knoten in einem Binären Baum

Habe ich die folgende einfache Struktur:

Suche nach Pfad Zwischen Zwei Knoten in einem Binären Baum

Mein Ziel ist es, den Weg zu finden zwischen den beiden manager-Knoten.

Werden die beiden Knoten ausgewählt werden, die Eingabe in der cmd.

So kann der Benutzer-Typ "java BinaryTree manager1 manager2' und in der Ausgabe wird der Pfad benötigt, der zweite manager. Dieses Beispiel soll Folgendes ausgegeben:

'Manager1 > Boss < Manager2'

Den code habe ich so weit definiert den Knoten, aber ich brauche eine Methode findPath drucken Sie den Pfad.

CODE: `

public class BinaryTree 
    {

 public static void main(String[] args)
 {
  Node boss = new Node(1);
  Node manager1 = new Node(2);
  Node manager2 = new Node(3);

  boss.left = manager1;
  boss.right = manager2;

  String path = findPath(args[0], args[1]);
  System.out.println(path);
  } 

 static class Node
 {
  Node left;
  Node right;
  int value;

  public Node(int value)
  {
   this.value = value;
  }
 }
}`

Vielen Dank für jede Hilfe 🙂

  • Hat Ihr Baum haben jede vorhersagbare / erschließbare Struktur? Das ist, können Sie sagen, ob eine Person wird in der linken oder rechten Unterbaum durch eine Regel? Wenn nicht, wirst du keine chance haben, aber Sie müssen tun, eine vollständige Traversierung des Baums auf der Suche, wo sich die Knoten, die Sie suchen.
  • Ja, ich hätte diese, Knoten-id ' s für das obige Beispiel so würde es sein Chef (1), Manager1(2), manager2(3)
  • Und was ist die Regel, die regelt, dass 2 Links und 3 rechts, Kind 1? Klar, es ist nicht die übliche weniger als " - relation.
  • stackoverflow.com/questions/22960057/... und geeksforgeeks.org/find-distance-two-given-nodes könnte hilfreich sein.
  • Wir können versuchen, die kleinen speed-up-Prozess, indem Sie auf übergeordneten Knoten. Dann den besten Weg zu finden den Weg zwischen die Führungskräfte der Suche nach der ersten gemeinsamen Vorfahren (das kann man in logn - nur Sie werden vollen Pfad von der Wurzel zu manager1, dann kompletten Pfad von der Wurzel zu manager2, dann finden letzten gemeinsamen Knoten). Dann sind Sie nur den Druck Weg von Manager1 zu Ahnen, und vom Vorfahren auf Manager2.
  • Ich glaube, dass ein vollständiges Durchlaufen des Baumes erforderlich ist. Sie haben Zugriff auf alle code-Beispiele, wie dies zu tun? Dank

Schreibe einen Kommentar