Дерево на C#

Тема в разделе ".NET", создана пользователем kan141290, 13 мар 2010.

  1. kan141290

    kan141290 Гость

    Здравствуйте! Помогите пожалуйста с задачей.
    Разработать обобщенный класс Tree<T> и сопутствующие классы, описывающие дерево с произвольным числом потомков в каждом узле:
    Эти методы и свойства обязательно должны быть.
    Пока сделал следующее:
    Структура узла дерева:

    Код (Text):
    public T value; //значение
    public List<Node<T>> children; //список потомков
    public Node<T> parent; //родительский элемент
    Пока интересует только добавление элемента в дерево (метод Add). С остальным всё понятно.
     
  2. kan141290

    kan141290 Гость

    Это понятно. Но никак не получается найти узел, к которому присоединить элемент.
    Я собирался делать так, чтобы дерево было отсортировано. Чем меньше элемент, тем левее он находится. Проблема в том, что используется обобщённый тип и не удаётся отсортировать элементы. С использованием делегатов ничего не получается.
    Пример кода:
    Код (C++):
    public void Add(Node<T> node, Node<T> tree)
    {
    List<Node<T>> temp = new List<Node<T>>();
    for (int i = 0; i < maxChildCount; i++)
    {
    if (tree.children[i]!=null)
    if (tree.children[i].children.Count == 0)
    temp.Add(node.children[i]);
    else
    Add(node,tree.children[i]);
    }
    //После этого список temp должен содержать все крайние элементы.
    //Среди них я хотел бы выбрать наиболее близкий по значению и к нему добавить новый, но
    //никак не получается сравнить их между собой         
    }
     
  3. kan141290

    kan141290 Гость

    Сначала нужно определить, к какому ноду его присоединить.
     
  4. kan141290

    kan141290 Гость

    Структура, которую я написал в начале дана по заданию.
    Возможно немножко неправильно понял задание.
    Я понял так: должно быть дерево с произвольным количеством потомков (>2) и несколькими уровнями. В него можно добавлять элементы и удалять из него. Но по какому принципу добавлять? В двоичных деревьях используется сортировка: меньший элемент добавлялся в левое поддерево, а больший в правое. Здесь я пытаюсь сделать примерно тоже самое.
     
  5. kan141290

    kan141290 Гость

    Понятно. Спасибо!
     
Загрузка...
Похожие Темы - Дерево на
  1. MrSpoon
    Ответов:
    0
    Просмотров:
    1.055
  2. Maestresa
    Ответов:
    2
    Просмотров:
    1.667
  3. KalinaK
    Ответов:
    1
    Просмотров:
    1.689
  4. Дайнеко
    Ответов:
    5
    Просмотров:
    1.734
  5. newslayer
    Ответов:
    0
    Просмотров:
    1.114

Поделиться этой страницей