прохождение по дереву в схеме - PullRequest
0 голосов
/ 04 декабря 2010

хорошо, у меня есть это дерево:

              a6
           /   |  \ 
        a1    a2   p1
                 /    \
              a1       a2   

и мне нужен код для его обхода.в репрезентации глубокого списка это так, верно?(a1 a2 (a1 a2))?у меня уже есть метод, который возвращает узлы childerns.например, если я это называю, (дерево функций a6) = (a1 a2 p1) есть идеи?

1 Ответ

1 голос
/ 07 декабря 2010

Я немного неуверен в том, что именно вы спрашиваете, но я постараюсь, чтобы вы начали.

Представления в глубоком списке упомянутой вами древовидной структуры должны выглядеть примерно так:

 '(a6 (a1) (a2) (p1 (a1) (a2)))

Около года назад я написал несколько статей в блоге, которые могут оказаться полезными. Деревья на схеме: представление и Деревья на схеме: анализ .

В статье «Парсинг» я демонстрирую использование взаимной рекурсии (рекурсивный метод, в котором две процедуры определяются в терминах друг друга) для эффективного анализа деревьев. Это должно быть полезно.

Наконец, я также рекомендую прочитать главу 18 Просто Схема , чтобы немного подробнее ознакомиться с этой темой.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...