Дерево со списком нодов в ноде

Доброго времени суток.Нужно реализовать дерево с нодами, которые могут быть и списками нодов. Т.е. Один нод может содержать адрес правого и левого нода, или правых и левых нодов может быть несколько.Бьюсь уже неделю над сей проблемой. Помоему это тупиковая проблема.У кого есть мысли - Высказывайте.
14 ответов

а смысл?такое дерево можно заменить бинрным...


Lazin, Разве? Мне кажется, что не так все просто.В моей реализации проблема с рекурсией.


если нодов больше чем два, то "право\лево" теряет всякий смысл. это просто граф, а не дерево. уж не стану рассказывать как графы задаются.. почитайте любой учебник по дискретной математике.


если нодов больше чем два, то "право\лево" теряет всякий смысл
Почему? Правых становится несколько, левых так же.


andrew_121, а как определяется количество правых и левых узлов для данного узла?


если нодов больше чем два, то "право\лево" теряет всякий смысл. это просто граф, а не дерево. уж не стану рассказывать как графы задаются.. почитайте любой учебник по дискретной математике. 
А если нод описывает трехмерный куб, заданный координатами, который в свою очередь разбит на восемь равных частей, описываемых "дочерними" нодами. Неужели это нельзя назвать деревом? Неужто это не древовидная структура? Она, разумеется, не бинарная, а (хм.. октарная?) .  И понятия правых и левых нет. Зато есть понятия верхний правый ближний, верхний правый дальний и т.д.   


это N-арное дерево, автору-же нужно бинарное, так как есть правые и левые чаилды, я так понял что он хочет такого:
      A     / \C D F   G H
но это уже не дерево, так как узлы C D F то-же как-то друг с другом соотносятся вот это дерево:         
        A       / \      D   G     / \   \    C   F   H


SaDFromSpb нестоит придираться к словам. слово дерево там было употреблено в терминологии автора первого поста дабы исключить путаницу.Lazin лично я думаю что автор имел  в виду нечто вроде
B0-A-B1   /\  C0 c1


Мне нужно представить это:
>   +------------------Ss------------------+        >   |       +-----------Xc----------+      |        >   +--MX*p-+------MVp-----+        |      |        >   |  +-Xd-+--Ost--+      +--Js-+  |      +---Os---+>   |  |    |       |      |     |  |      |        |> Ime1 , being.v agonist for.p Ime2 , activates.v Ime4
В виде дерева. Но есть одно "НО". Слово "being" указывает на 4-ри поддерева. А это очень простое предложение.Из кода сего парсера, я получаю это:
> Ime1         Ss       activates> Ime1         MX*p     being> ,            Xd       being> being        Xc       ,> being        MVp      for> being        Ost      agonist> for          Js       Ime2> activates    Os       Ime4
Список связей, каждая содержит тип, и слова.


andrew_121, объясни, что ты вообще делаешь по-лучше. А то это какой-то страшный набор букв.


SaDFromSpb - Что именно не понятно?


andrew_121, После слов "нужно представить вот это" идет поле, в котором написано предложение, а сверху него отображение связей одних слов с другими. Нарисуй, каким это дерево должно быть (или это оно и есть?).На вскидку тут действиетльно не угадывается древовидной структуры в общем случае. Просто набор связей между словами... Где тут иерархическая структура?


SaDFromSpb - Гм... Вопрос правильный. Похоже что я просто не знаю как мне представить эту древовидную структуру.Т.е. Парсер после разбора предложения отображает диаграмму связей, это для наглядности, программе которая работает с результатом парса этого не понять. При помощи API парсера, я получаю список пар:
> Ime1         Ss       activates> Ime1         MX*p     being> ,            Xd       being> being        Xc       ,> being        MVp      for> being        Ost      agonist> for          Js       Ime2> activates    Os       Ime4
которые мне нужно представить в виде древовидной структуры, аналогичной приведенной выше диаграмме.


А что такое API парсер?