Ahoj,
potřeboval bych poradit. Mám vytvořit strom, kde rodič má max. 2 potomky a číslo rodiče je vždy nižší než číslo potomka. Na vstup mi přichází vždy dvojice čísel např:
4 2
2 5
2 1
1 3
3 6
Pokud mám např. čísla 3 1 znamená to, že 1 je rodič (nižší číslo) a 3 je potomek do leva.
Pokud mám např čísla 1 3 znamená to, že 1 rodič a tři je potomek do prava.
Vymyslel jsem následující kód, ale nevím jak to napsat tak, aby se mi vytvořil pomocí alogitmu komplet celý kód:
class Node {
int key;
Node parent; // Někdy není potřeba.
Node left, right;
Node(){}
Node(int k) {
key = k;
} // Konstruktor.
public void preorder(Node u) {
if (u == null) {
return;
} else {
System.out.println(u.key); //1. koren
preorder(u.left); //2. L podstrom
preorder(u.right); //3. P podstrom
}
}
}
public static void main(String[] args) {
Node root1 = new Node(2);
root1.left = new Node(4);
root1.right = new Node(5);
root1.parent =new Node(1);
Node root2 = new Node(1);
root2.left = root1;
root2.right = new Node(3);
root2.right.right = new Node(6);
root1.preorder(root1);
}