ternäre(3) Baumstruktur

JimmyKudo

Mitglied
Ahoy there! Meine Baumstruktur soll so aussehen.


Java:
public class TernaryTree {

/*
                   1 0
            /       |          \
         9         8            7
   /   |   \      ....        /   |   \
  7     6   5    ....       6    5     4
 ..... ...          ....                  .....
                                         /   |   \ 
                                        2   1   0

wie lässt sich das besser lösen (siehe main-Methode)

* /



    public static class Node {

        Node left, middle, right;
        int value;

        public Node(int value) {
            this.value = value;
            this.left = this.middle = this.right = null;
        }
    }

    // Root of Binary Tree
    Node root;

    TernaryTree() {
        root = null;
    }

    TernaryTree(int value) {
        root = new Node(value);
    }

    public static void main(String[] args) {
        TernaryTree tree = new TernaryTree();
        tree.root = new Node(10);
        
        /*
                   1 0
                 /  |  \
              null null null
         */
        
        tree.root.left = new Node(9);
        tree.root.middle = new Node(8);
        tree.root.right = new Node(7);
        
// -------------------------------------------------
        
        tree.root.left.left = new Node(8);
        tree.root.left.middle = new Node(7);
        tree.root.left.right = new Node(6);
        
        tree.root.middle.left = new Node(7);
        tree.root.middle.middle = new Node(6);
        tree.root.middle.right = new Node(5);
        
        tree.root.right.left = new Node(6);
        tree.root.right.middle = new Node(5);
        tree.root.right.right = new Node(4);

// -------------------------------------------------
        
        tree.root.left.left.left = new Node(7);
        tree.root.left.left.middle = new Node(6);
        tree.root.left.left.right = new Node(5);
        
        tree.root.left.middle.left = new Node(6);
        tree.root.left.middle.middle = new Node(5);
        tree.root.left.middle.right = new Node(4);
        
        tree.root.left.right.left = new Node(5);
        tree.root.left.right.middle = new Node(4);
        tree.root.left.right.right = new Node(3);
        
    }
}
 

JimmyKudo

Mitglied
Hab mich verschrieben, ganz links soll (8, 7, 6) stehen und nicht (7, 6, 5). Aber ich komme anscheinend voran, eine Rekursion stellt eine passende Lösung für mein Problem dar.
 
K

kneitzel

Gast
Also ich würde da von den Blättern nach oben gehen. Desweiteren würde ich über einen Konstruktor nachdenken, der neben dem Wert noch die drei Childs mit bekommt.

Dann wäre so ein Code-Ausschnitt einfach:
Java:
Node node9 = new Node (9, new Node(7), new Node(6), new Node(3));
// ...
Node node10 = new Node(10, node9, node8, node7);

Ich habe die Namen einfach mal nodex genannt mit x = dem Wert.

Das wäre so ein Verbesserungsvorschlag von meiner Seite um die langen Ketten zu vermeiden.
 

Ähnliche Java Themen

Neue Themen


Oben