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

Условия добавления в дерево - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массивы: составить вдвое меньший массив,элементами которого являются http://www.cyberforum.ru/cpp-beginners/thread591785.html
Дан массив a из n элементов. n - четное. Составить вдвое меньший массив,элементами которого являются : b1=a1+an; b2=a2+an-1 и т.д.
C++ Реализация графа Может кто-нибудь привести пример реализации графа-сети? http://www.cyberforum.ru/cpp-beginners/thread591782.html
C++ программа на c++
Доброго времени суток, у меня возникла проблема с программой, помогите пожалуйста с исправлением ошибок. #include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> #include <graphics.h> #include <stdlib.h> #define h 10 float c=0.5,i; int R=100,k;
Функция в массиве C++
В упорядоченном по возрастанию массиве подсчитать количество элементов, расположенных до элемента со значением К. Нахождение индекса элемента со значением К реализовать в виде функции. Помогите пожалуйста
C++ Eror: существует более одного экземпляра перегруженная функция "log" соответствующего списку аргументов http://www.cyberforum.ru/cpp-beginners/thread591776.html
#include "stdafx.h" #include <iostream> #include <math.h>; using namespace std; int _tmain(int argc, _TCHAR* argv) { double a, b; cout << "Enter a ->"; cin >> a;
C++ Очень прошу разъяснить код алгоритма Бойера-Мура #include <cstdlib> #include <iostream> #include <string> #define ALPHABET_LEN 255 #define NOT_FOUND patlen #define max(a, b) ((a < b) ? b : a) using namespace std; подробнее

Показать сообщение отдельно
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824

Условия добавления в дерево - C++

30.05.2012, 20:51. Просмотров 255. Ответов 2
Метки (Все метки)

Привет, решаю задачку, не могу кое с чем разобраться.

у меня задача добавить в дерево число, как концевой узел.
если число меньше значения корня дерева, то добавить в левое дерево(это ОК), если больше, то в правое(это тоже ОК), а если равно то никуда ничего не добавлять, а просто пропустить его.

то есть если у нас корень 5, и мы когда-то захотим вставить число 5, то мы должны будем просто пропустить этот шаг и все.

вот моя функция добавления, скажите что делаю не так.

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
node * new_node (int x) {
    node *ptr;
    ptr = new node;
    ptr->info = x;
    ptr->left = ptr->right = NULL;
    return ptr;
}
 
node* add_node(int x, node* root) {
    node *ptr = root;
    if (root == NULL) 
        return new_node (x);
    if (x == ptr->info) {
        cout << "Oshibka pri dobavlenii " << x << ", aga!" << endl << endl;
        return NULL;
    }
    if (x < root->info) {
        root->left = add_node (x, root->left);
        return ptr;
    } else {
        root->right = add_node (x, root->right);
        return ptr;
    }
    
}
например хочу добавить числа 2 5 8 9 3 0 1 8. он не добавит ниодной восьмерки, а должен добавить первую , но не добавить вторую. подскажите, пожалуйста.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru