Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

прохода по дереву

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 2.11.2024

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

Существует несколько принципиально разных способов обхода дерева:

Обход в прямом порядке

Каждый узел посещается до того, как посещены его потомки.

Для корня дерева рекурсивно вызывается следующая процедура:

Посетить узел

Обойти левое поддерево

Обойти правое поддерево

Примеры использования обхода:

  1.  решение задачи методом деления на части
  2.  разузлование сверху
  3.  стратегия "разделяй и властвуй" (Сортировка Фон Hеймана, быстрая сортировка, одновременное нахождение максимума и минимума последовательности чисел, умножение длинных чисел).

Симметричный обход

Посещаем сначало левое поддерево, затем узел, затем - правое поддерево.

Для корня дерева рекурсивно вызывается следующая процедура:

Обойти левое поддерево

Посетить узел

Обойти правое поддерево

Обход в обратном порядке

Узлы посещаются 'снизу вверх'.

Для корня дерева рекурсивно вызывается следующая процедура:

Обойти левое поддерево

Обойти правое поддерево

Посетить узел

Примеры использования обхода:

  1.  анализ игр с полной информацией
  2.  разузлование снизу
  3.  динамическое программирование

Обход в ширину

При обходе в ширину узлы посещаются уровень за уровнем(N-й уровень дерева - множество узлов с высотой N). Каждый уровень обходится слева направо.

Для реализации используется структура queue - очередь с методами

  1.  enqueue - поставить в очередь
  2.  dequeue - взять из очереди
  3.  empty - возвращает TRUE, если очередь пуста, иначе - FALSE

q.enqueue(root);        // корень в очередь

while (! q.empty) {

 x = q.dequeue();

 visit x;              // посетить x

 if (! x.left.empty)   // x.left - левое поддерево

   q.enqueue(x.left);

 if (! x.right.empty)  // x.right - правое поддерево

   q.enqueue(x.right);

}




1. Дифференциальные уравнения для электрической цепи
2. Анализ производственной и организационной структуры предприятия ЗАО Холодон.html
3. Реферат- Сельское хозяйство как фактор загрязнения окружающей среды
4. 2005 Lvlys Inc
5. Лёд и пламя- Аксель души и тела 78 февраля 2014 г
6. ожденных Инфекция ликворотводящих шунтов чаще всего вызвана Stphylococcus epidermidis
7. тема юр норм регулирующих межгос отношения в целях обеспечения мира и сотрудничества.html
8. Контрольная работа.1
9. 1 руб
10. говядина произошло от древнерусского слова говядо которое и означало крупный рогатый скот
11. Социологические исследования
12. Тема- Робота з таблицями і об~єктами у Word Мета- Вдосконалити роботу з таблицями і шаблонами навчитися створ
13. Н. Лесков. Повести
14. 81444
15. Задача аппроксимации
16. Мир наших улыбок для обучающихся 5 6 класса Автор- Андреева Елена Николаевна педагог орган
17. Пояснительная записка А1 АК412
18. Бизнес-план производства технического углерода (сажи) (и газообразного водорода)
19. Тема 1 Экономическая сущность страхования Контрольные вопросы- 1
20. Она не привлекает внимания