|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.12.2011, 19:37 | #11 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
так что получается так: Код:
выйдут такие вызовы: 1 1 1 2 2 2 Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
15.12.2011, 19:38 | #12 |
Веб-дизайнер
Форумчанин
Регистрация: 11.08.2011
Сообщений: 305
|
googl, в первом варианте работет сначала vyvod(node.pRight,tmpItem) а потом срабатывает vyvod(node.pLeft,tmpItem).
Может ввести какой-то параметр, который будет ответственным за выбор? Код:
Последний раз редактировалось kettanaito; 15.12.2011 в 19:43. |
15.12.2011, 19:41 | #13 | |
Форумчанин
Регистрация: 05.06.2010
Сообщений: 154
|
Цитата:
я могу туда и root передать |
|
15.12.2011, 19:42 | #14 | |
Форумчанин
Регистрация: 05.06.2010
Сообщений: 154
|
Цитата:
|
|
15.12.2011, 19:44 | #15 | |
Форумчанин
Регистрация: 05.06.2010
Сообщений: 154
|
Цитата:
|
|
15.12.2011, 20:00 | #16 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
у вас выходит так что сначало он пойдет до упора влева вниз, лишь потом направо начнет(заходя налево при необходимости). как я понял это двоичное дерево, итого выходит имея дерево вида: (нижняя строка нам не нужна) разбор его в вашей процедуре пойдет так: m m.left->e e.left->c c.left->a a.left->nil(условие не выполнится) a.right->nil(условие не выполнится) c.right->nil(условие не выполнится) e.right->g g.left->nil(условие не выполнится) g.right->k k.left->nil(условие не выполнится) k.right->nil(условие не выполнится) m.right->s s.left->p p.left->o o.left->nil(условие не выполнится) o.right->nil(условие не выполнится) p.right->s s.left->nil(условие не выполнится) s.right->nil(условие не выполнится) s.right->y y.left->nil(условие не выполнится) y.right->nil(условие не выполнится) вот все итерации для дерева на картинке. что еще не понятного? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
15.12.2011, 20:10 | #17 |
Форумчанин
Регистрация: 05.06.2010
Сообщений: 154
|
мне все понятно. спасибо тебе огромное. вот сути я так и не понял. почему, если условие не выполняется, т.е. узел nil происходит вызов probh(node.pRight), если они оба стоят в одном блоке. т.е. если условие не выполняется, по идее конец должен же быть. вот. мне не понятен сам процесс рекурсивного вызова.
вот если так написать Код:
|
15.12.2011, 20:15 | #18 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
у вас что написано?
Код:
Код:
Цитата:
параметры то проверяйте иногда(раз уж отладкой пользуетесь) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
15.12.2011, 20:30 | #19 |
Форумчанин
Регистрация: 05.06.2010
Сообщений: 154
|
Ура. Теперь понял))) Спасибо большущее, мужики!!!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа не работает в Code Block, не пойму почему. | Stunt Man | Помощь студентам | 1 | 03.06.2011 19:38 |
Не пойму зачем не работает?! | Jone200991 | Помощь студентам | 0 | 31.05.2011 14:45 |
Не пойму как работает цикл | Lotles | Общие вопросы C/C++ | 4 | 29.11.2010 02:08 |
не пойму правильно ли работает программа | серг | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 13.05.2010 14:58 |
Паскаль. рекурсия. числа. объясните, как работает код | [silver beast] | Помощь студентам | 2 | 21.01.2009 05:00 |