7 / 7 / 2
Регистрация: 03.04.2011
Сообщений: 176
|
||||||
1 | ||||||
Бинарные деревья на С++10.04.2011, 00:05. Показов 5328. Ответов 9
Метки нет Все метки)
(
пишу программу в Dev-C++ для работы с бинарными деревьями.
возникла такая проблема: функция FindTree возвращает отрицательное значение, т.е. она считает, что дерево пустое и возвращает -1 до тех пор, пока не будет достигнут конец файла при считывании элементов, которые надо найти. в чем причина, и как ее исправить?
0
|
|
10.04.2011, 00:05 | |
Ответы с готовыми решениями:
9
бинарные деревья
бинарные деревья Бинарные деревья |
Делаю внезапно и красиво
![]() 1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
10.04.2011, 07:47 | 2 |
117 и далее. Выполняешь поиск в не инициализированном дереве. Т.е. оно ничего не находит, т.к. ничего нет. Более того, объект t содержит мусор, т.к. ты его даже не обнулил. В релизе программа просто упадёт.
0
|
7 / 7 / 2
Регистрация: 03.04.2011
Сообщений: 176
|
|
10.04.2011, 09:50 [ТС] | 3 |
и как это исправить? я еще новичок в С++, многого не знаю
0
|
Делаю внезапно и красиво
![]() 1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
10.04.2011, 10:26 | 4 |
Заполни дерево чем-нибудь, а потом уже ищи в нём. А то сейчас ищешь в пустом дереве и удивляешься, что ничего не находит.
Тут в подписи у кого-о есть жизненно важная цитата "RAII-...", суть которой в том, что инициализировать объект нужно сразу же после создания (или в момент создания). Если ты не можешь инициализирвовать объект сразу же, возможно, и создавать его нужно не сейчас. В строке 119 ты создал указатель, не обнулив его. Ничего полезного в него тоже не записал. А в строке 126 используешь. В дебаге он у тебя обнулён, поэтому возвращает -1, но в релизе там будет мусор и программма будет падать.
0
|
7 / 7 / 2
Регистрация: 03.04.2011
Сообщений: 176
|
|
11.04.2011, 15:09 [ТС] | 5 |
дерево заполняется в 109-110 строках, а потом я его нигде обнуляю... так что оно должно быть заполнено
0
|
Делаю внезапно и красиво
![]() 1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
11.04.2011, 15:16 | 6 |
Это если введёшь 1, а когда вводишь 2, то оно не заполнено.
0
|
7 / 7 / 2
Регистрация: 03.04.2011
Сообщений: 176
|
|
11.04.2011, 22:21 [ТС] | 7 |
дак она выдает отрицательные числа, даже если нажать один, а потом 2
0
|
Делаю внезапно и красиво
![]() 1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
12.04.2011, 06:28 | 8 |
105 и 119 это РАЗНЫЕ деревья. Повторяю, ты используешь не инициализированное дерево.
И сделай цикл по человечески. Я только сейчас на goto обратил внимание.
0
|
7 / 7 / 2
Регистрация: 03.04.2011
Сообщений: 176
|
|
12.04.2011, 13:30 [ТС] | 9 |
все, спасибо, разобрался
0
|
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 15
|
|
13.02.2014, 19:04 | 10 |
0
|
13.02.2014, 19:04 | |
13.02.2014, 19:04 | |
Помогаю со студенческими работами здесь
10
Бинарные деревья Бинарные деревья Бинарные деревья Бинарные деревья Бинарные деревья Бинарные деревья Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |