Я пытаюсь практиковать дженерики и полиморфизм. У меня есть класс Node следующим образом:
public class Node<T> {
public T name;
public Node[] children;
}
Затем обобщенный c Класс дерева:
public class Tree<T> {
public Node<T> root;
}
Теперь я пытаюсь реализовать двоичное дерево. Бинарное дерево является деревом , таким образом, удовлетворяющее является правилом полиморфизма. Я борюсь с тем, как добиться того, чтобы узлы в двоичных деревьях могли иметь максимум двух дочерних элементов.
Должен ли я расширять класс узлов до двоичного узла, а дочерний массив всегда инициализируется до размера 2? Если BinaryTree расширяет Tree, как мне наложить ограничение на переменную-член children ?
Как будто я пытаюсь сделать:
BinryTree extends Tree
BinaryTreeNode extends Node
Где Node - это переменная-член в Tree, а BinaryTreeNode - это переменная-член в BinaryTree. Каким будет правильный дизайн?