Алгоритм обхода дерева

Обновление:
Я нашел еще один пример того, что я пытаюсь реализовать: Управление Иерархические данные в MySQL . Я хочу сделать это, но на JavaScript, потому что я создаю приложение, которое принимает комментарии, которые находятся в иерархической структуре, а точнее на reddit.com. Если у вас есть расширение Pretty JSON в браузере Chrome, перейдите на Reddit и щелкните комментарий к цепочке, а затем добавьте .json к URL-адресу, чтобы увидеть, что я анализирую.
Я прекрасно получаю данные JSON, просто анализируя комментарии и добавляя соответствующий HTML-код, чтобы показать, что он вложен.
Идеи решений?


СТАРЫЙ вопрос:
Я работаю над программой и дошел до той части, в которой мне нужно выяснить логику, прежде чем писать код. Я беру данные в формате дерева, но с возможностью наличия нескольких дочерних узлов для каждого родительского узла, и единственное дерево, в котором я могу найти данные, - это дерево с весами или дерево, где максимум у каждого узла есть два дочерних узла. Итак, я пытаюсь придумать алгоритм для оценки каждого узла дерева следующим образом:

startingParent[15] // [# of children]
    child1[0]
    child2[5]
       child2ch1[4]
       ...
       child2ch5[7]
    child3[32]
    ...
    child15[4]

Теперь, когда я пытаюсь написать, как будет работать мой алгоритм, я в конечном итоге пишу вложенные циклы for / while, но в итоге пишу цикл для каждого уровня высоты дерева, который для динамических данных и деревьев неизвестной высоты с неизвестным количеством дочерних элементов на узел это не работает. Я знаю, что в какой-то момент я научился пересекать такое дерево, но сейчас это полностью ускользает от меня. Кто-нибудь знает, как это делается с точки зрения циклов?

9
задан Joel 3 November 2013 в 00:22
поделиться