Перечисление всех путей в дереве

Мне было интересно, как лучше всего реализовать древовидную структуру данных, чтобы иметь возможность перечислять пути всех уровней. Позвольте мне объяснить это с помощью следующего примера:

     A
   /   \
   B    C
   |    /\
   D   E  F

Я хочу иметь возможность генерировать следующее:

A
B
C
D
E
F
A-B
A-C
B-D
C-E
C-F
A-B-D
A-C-E
A-C-F

На данный момент я выполняю поиск в глубину для различных глубин в структуре данных, построенной с использованием словаря и запись уникальных узлов, которые видны, но мне было интересно, есть ли лучший способ сделать такой обход. Есть предложения?

7
задан Legend 15 April 2011 в 01:32
поделиться