Как перебрать дерево по спирали? - PullRequest
2 голосов
/ 14 мая 2010
           1 
      2              3
  4       5        6       7
8  9   10   11   12 13   14  15   

вывод в спиральном порядке должен быть 1 3 2 4 5 6 7 15 14 13 12 11 10 9 8

Ответы [ 2 ]

2 голосов
/ 14 мая 2010

Подумайте, как бы вы перебрали корневой узел и первый уровень.

Можете ли вы написать функцию для этого поведения и вызывать ее рекурсивно?

1 голос
/ 14 мая 2010

Это действительно вариант поиска в ширину. Поиск в ширину использует очередь, чтобы получить список узлов на следующем уровне вниз. Очередь - это FIFO (первым пришел, первым вышел). Если вы поменяете порядок на каждом уровне, вы получите этот эффект, поэтому вместо этого вам понадобится LIFO (последний пришел первым вышел), иначе известный как стек.

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