Форум программистов, компьютерный форум CyberForum.ru

Вывести число вершин n-го уровня (Бинарное дерево поиска) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму элементов в тех строках которые, содержат хотя бы один отрицательный элемент http://www.cyberforum.ru/cpp-beginners/thread528066.html
Доброго времени суток, очень нужна помощь по одной задачке: Для заданной матрицы размером 8 на 8 найти такие К , что К-я строка матрицы совпадает с К-м столбцом. Найти сумму элементов в тех строках которые, содержат хотя бы один отрицательный элемент. Заранее благодарен!
C++ Возведение в степень Вам конечно это покажется тупой проблемой, но всё же. Напишите пожалуйста как возводить в степень на си и пример. В инете что ищу всё на си++, а мне на обычном надо. http://www.cyberforum.ru/cpp-beginners/thread528053.html
Что интересного можно рассказать о итераторах C++
Нужно рассказать что-то интересное о стандартных итераторах в С++. Может какие-то нетипичные приемы, какие-нибудь оригинальные способы использования. Что-нибудь кроме стандартных приемов и определений. Может опытные программисты что-то на этот счет знают?
C++ Поиск по массиву
Некоторый массив содержит повторяющиеся элементы, нужно найти количество различных элементов в нём. #include<stdio.h> #include<conio.h> #include<iostream> using namespace std; int a = {2,2,5,7,5,7,9,11,10,2,4,1}; int N,i,j,k=0; main(){ N = sizeof(a)/sizeof(a); //узнаём длину массива
C++ Как заменить объект List одного класса объектом другого? http://www.cyberforum.ru/cpp-beginners/thread528041.html
к примеру дано нам 1 объект класса Book , я хочу его вставить в класс Table вместо удаленного объекта данного класса....как мне поступить? class Book { list <LegOfBooks> listBook; list <LegOfBooks> :: iterator iter1;
C++ Подключение PI Привет всем, уже не хватает злости от этого С языка... не могу никак подцепить PI, везде где можно пишут что нужно подцепить math.h и там M_PI, и все равно ничего не находит... MS Visual C++ Express подробнее

Показать сообщение отдельно
Duha666
50 / 50 / 5
Регистрация: 10.03.2012
Сообщений: 138
26.03.2012, 09:18     Вывести число вершин n-го уровня (Бинарное дерево поиска)
Вообщем, дело в том, что вместо проверки на несуществования вершины в дереве вы делаете обратное и все валится.
Замените везде в удалении if (что-то != NULL) на if (что-то == NULL) и всё будет как надо
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
BSTree* Del(BSTree* T, int k)
{ BSTree *P, *v;
  if (T==NULL) cout << "this element in the tree there!" << endl; // если такого ключа нет, то ничего не делаем, а не наоборот
  else if (k < T->key) T->Left = Del(T->Left, k);
       else if (k > T-> key) T->Right = Del(T->Right, k);
            else {P = T;
                  if (T->Right==NULL) T = T->Left; // случай 1, подвешиваем левое поддерево, если нет правого
                  else if (T->Left==NULL) T = T->Right; // случай 1, подвешиваем правое поддерево, если нет левого
                       else // случай 2, оба есть. Ну тут все и было хорошо
                            { v = T->Left;
                              if (v->Right)
                              {
                              while (v->Right->Right) v = v->Right;
                              T->key = v->Right->key;
                              P = v->Right; v->Right = v->Right->Left;
                              }
                              else
                              {
                               T->key = v->key;
                               P = v;
                               T->Left=T->Left->Left;
                              }
                            }
                  free(P);
                 }
 return T;
}
 
Текущее время: 10:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru