Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
136 / 1 / 1
Регистрация: 27.02.2013
Сообщений: 7

Не работает вставка узла в бинарное дерево

03.03.2013, 13:20. Показов 1086. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто может скажите почему при вставке 2ого элемента происходит отладка
Вот последовательность чисел в файле(на 543 уже не работает):
34 543 23 43 56 7645 7434 355 54 4

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <fstream>
using namespace std;
 
class BinaryTree
{
protected:
struct Tree
    {
    long Value;
    Tree *lSon;
    Tree *rSon;
    Tree(const long &Val, Tree *LSon=NULL, Tree *RSon=NULL)
        {
        Value=Val;
        lSon=LSon;
        rSon=RSon;
        }
    };
Tree *root;
public:
void Insert(const long &newvalue);
BinaryTree() {root=NULL;}           // Create empty tree
BinaryTree(const long &Value) {root=new Tree(Value);}
~BinaryTree() {};
};
 
void BinaryTree::Insert(const long &newvalue)
{
if (root==NULL)
    {
    root=new Tree(newvalue);
    return ;
    }
Tree * node=root;
while (node!=NULL);
    {
    if ((node->Value)>=newvalue)
        { node=node->rSon; }
    else 
        {
        if ((node->Value)<newvalue)
            { node=node->lSon; }
        }
    }
node=new Tree(newvalue);
return ;
}
 
int main ()
{
BinaryTree a;
ifstream f1("input.txt");
ofstream s2("output.txt");
int i;
while (!f1.eof())
    {
    f1>>i;
    a.Insert(i);
    }
return 0;
}
Добавлено через 2 минуты
Уточняю происходит не отладка а скорей всего зацикливание но я не вижу причины того, что могло вызвать эту проблему
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.03.2013, 13:20
Ответы с готовыми решениями:

Бинарное дерево из слов и удаление узла
Ребят нужно создать дерево где пользователь вводит слова, они записываются в дерево, а потом вводит слово которое хочет удалить из него....

Вставка нового узла в бинарное дерево
Подскажите можно ли как-то реализовать, чтобы в консоле можно было вставлять новый узел, нахождение отца и правого, левого сыновей...

Функция поиска с включением узла в бинарное дерево
Здравствуйте! Помогите, пожалуйста, написать функцию поиска с включением узла в бинарное дерево. struct node_t { data_t data; ...

1
3178 / 1937 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
09.03.2013, 05:15
Цитата Сообщение от Stanislav94 Посмотреть сообщение
зацикливание, но я не вижу причины
Неряшливый код не позволяет увидеть. И ликвидируйте утечку памяти.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <iostream>
#include <fstream>
 
using namespace std;
 
//////////////////////////////////////////////////////////////////////////
 
class BinaryTree
{
   protected:
 
      struct Tree
      {
         long     Value;
         Tree*    lSon;
         Tree*    rSon;
 
         Tree(const long& Val,Tree* LSon = NULL,Tree* RSon = NULL)
         {
            Value = Val;
            lSon  = LSon;
            rSon  = RSon;
         }
      };
 
      Tree*    root;
 
   public:
 
       BinaryTree()
       {
         root = NULL; // Create empty tree
       }
 
       BinaryTree(const long& Value)
       {
         root = new Tree(Value);
       }
 
      ~BinaryTree() 
      {
         // Memory Leaks Here !!
      }
 
      void Insert(const long& newvalue);
};
 
//////////////////////////////////////////////////////////////////////////
 
void BinaryTree::Insert(const long& newvalue)
{
   if (!root)
   {
      root = new Tree(newvalue);
      return;
   }
 
   Tree*    node = root;
 
   while (node)
   {
      if ((node->Value) >= newvalue)
      {
         node = node->rSon;
      }
      else
      {
         if ((node->Value) < newvalue)
         {
            node = node->lSon;
         }
      }
   }
 
   node = new Tree(newvalue);
}
 
//////////////////////////////////////////////////////////////////////////
 
int main()
{
   BinaryTree     a;
 
   ifstream f1("input.txt");
   ofstream s2("output.txt");
 
   int ii = 0;
 
   while (!f1.eof())
   {
      f1 >> ii;
 
      a.Insert(ii);
   }
 
   return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.03.2013, 05:15
Помогаю со студенческими работами здесь

Построить бинарное дерево поиска. Определить уровень узла с максимальным элементом
Из входной последовательности вещественных чисел построить бинарное дерево поиска. Определить уровень узла с максимальным элементом.

Вставка узла в дерево Windows Explorer
Хочу, чтобы моя прога добавляла в дерево Explorerа свой узел (типа как Панель управления или Сетевое окружение) и при обращении к ней...

Бинарное дерево (обход, удаление и вставка)
Помогите сделать вывод, не понимаю, как оно должно работать. Условие: С помощью указателей построить бинарное дерево поиска. Обойти его...

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру. вот...

Бинарное дерево подклассов основного класса-узла. Доступ к подклассам по указателю - объекту класса-родителя
Короче, необходимо сделать бинарное дерево, решающее арифметическое выражение, предварительно туда записанное. Есть основной класс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru