K
kan141290
Здравствуйте! Помогите пожалуйста с задачей.
Разработать обобщенный класс Tree<T> и сопутствующие классы, описывающие дерево с произвольным числом потомков в каждом узле:
Эти методы и свойства обязательно должны быть.
Пока сделал следующее:
Структура узла дерева:
Пока интересует только добавление элемента в дерево (метод Add). С остальным всё понятно.
Разработать обобщенный класс Tree<T> и сопутствующие классы, описывающие дерево с произвольным числом потомков в каждом узле:
1. Node<T>
o методы:
void Add(Node<T> node); //добавление узла
void Add(T value); //добавление узла по значению
int Remove(Node<T> node) – возвращает количество удаленных элементов;
int Remove(T node) – возвращает количество удаленных элементов;
void Clear(); //Очистка дерева
void SortNodes(CompareDelegate<T>); //Сортировка узлов
o свойства
int ChildCount; //Количество потомков (сделано)
Node<T> Parent; (сделано)
Tree<T> Tree; (сделано)
bool isEmpty; //Проверка, есть ли в дереве элементы
2. Tree<T>: Node<T>
o методы
ForEach(WalkType type, ActionDelegate<Node<T>>);
ForEach(WalkType type, ActionDelegate<T>);
3. WalkType = (PreOrder, InOrder, PostOrder, BreadthFirst) – (методы обхода: сверху вниз, слева направо, снизу вверх, в ширину);
4. TreeException – класс, описывающий исключения, которые могут происходить в ходе работы c деревом.
Эти методы и свойства обязательно должны быть.
Пока сделал следующее:
Структура узла дерева:
Код:
public T value; //значение
public List<Node<T>> children; //список потомков
public Node<T> parent; //родительский элемент
Пока интересует только добавление элемента в дерево (метод Add). С остальным всё понятно.