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

Поиск и удаление в бинарном дереве, построенном на рекурсии - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу. не могу найти ошибку http://www.cyberforum.ru/cpp-beginners/thread1000359.html
Приветствую всех, мне нужно помощь в решении задачи, сам не могу поймать баг.. в целом все работает, но на деле выводит не до конца отредактированный массив. Заранее благодарен! Задача: "Упорядочить строки целочисленной прямоугольной матрицы по возрастанию суммы модулей их элементов. Найти номер первого из столбцов, содержащих хотя бы один отрицательный элемент". #include "stdafx.h"...
C++ вычислительная геомтерия Круг Даны координаты n точек (xi,yi), i=1,2,…,n (n≤100). Указать номера тех точек, которые принадлежат кругу с центром в точке (x,y) и радиусом R. Результат вывести в порядке следования вводимых данных. Если таких точек нет, напечатать “0”. Пример input.txt 3 1 1 1 2 2 3 3 3 2 output.txt http://www.cyberforum.ru/cpp-beginners/thread1000334.html
нарисовать треугольник из * без if else C++
Доброго времени суток, в книге задание нарисовать треугольник из *, причем пользователь вводит кол-во строк, не используя if else. Что-то алгоритм вообще придумать никак не могу.Например ввели 5 строк. ....* ...** ..*** .**** *****
C++ уравнение массы переноса
Помогите написать "уравнение массы переноса". Не могу сам разобраться. нужно написать для теста: u't+u'(x)=2 u=x+t u(o,t)=t u(x,o)=x tau=0.01 h=0.1 Схема должна быть получена с помощью конечно-разностных апроксимаций производных.
C++ Определить индексы подряд расположенных положительных элементов массива http://www.cyberforum.ru/cpp-beginners/thread1000308.html
Вевсти элементи масива а. Определить индексы подряд расположенных положительных элементов массива. (щчень нужно срочно) есть код, но в нем ошибки: #include <stdio.h> #include <conio.h> #include <iostream.h> int a; int i,j,k,I; int main() { clrscr();
C++ Двумерный динамический массив - найти ошибку в коде Кто мне может объяснить почему не работает вариант, когда мы выносим весь процесс выделения памяти под двумерный массив и заполнение оного в отдельную функцию и вызываем в конструкторе? void CRegionMapNDlg::MemoryAllocationOnArrays(UINT **pArray, int numArr, int numVar) { pArray = new UINT *; for (int i = 0; i < numArr; i++) pArray = new UINT; for (int i = 0; i < numArr; i++) {... подробнее

Показать сообщение отдельно
Iko
0 / 0 / 0
Регистрация: 05.11.2013
Сообщений: 4

Поиск и удаление в бинарном дереве, построенном на рекурсии - C++

07.11.2013, 08:24. Просмотров 191. Ответов 0
Метки (Все метки)

Делал лаботраторку по созданию бинарного дерева. Так как я понятия не имею как его строить, нашел в интернете код с пояснениями чуть ли не через каждую строчку. Как построить то понял, но как теперь реализовать функции поиска и удаления?
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
98
// Binary tree.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
struct Node
{
    int x;
    Node *l, *r;
    
};
 
void Show (Node *&Tree)
{
    if (Tree!=NULL)
    {
        Show(Tree->r);
        cout<<" ";
        cout<<Tree->x;
        cout<<" ";
        Show(Tree->l);
    }
}
 
void Add (int x, Node *& MyTree)
{
    if (NULL==MyTree)
    {
        MyTree = new Node;
        MyTree -> x=x;
        MyTree->l=MyTree->r=NULL;
    }
 
 
if (x<MyTree->x)
{
    if (MyTree->l!=NULL)
    {
        Add(x,MyTree->l);
    }
    else 
    {
        MyTree->l=new Node;
        MyTree->l->l=MyTree->l->r=NULL;
        MyTree->l->x=x;
    }
}
 
if (x>MyTree->x)
{
    if (MyTree->r!=NULL)
    {
        Add(x,MyTree->r);
    }
    else 
    {
        MyTree->r=new Node;
        MyTree->r->l=MyTree->r->r=NULL;
        MyTree->r->x=x;
    }
}
}
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    int y,flag=1;
    Node *Tree = NULL;
    for (int i=10;i>0;i--)
    {
        Add(i,Tree);
    }
    Show(Tree);
    cout<<"\n";
    while(flag==1)
    {
        cout<<"\n";
        cout<<"\n";
        cout<<"Желаете ввести новый узел?  1-Да   0-Нет"<<endl;
        cin>>flag;
        if (flag==0)
            break;
        cout<<"\n";
        cout<<"Введите новый узел"<<endl;
        cin>>y;
 
        Add(y,Tree);
        cout<<"\n";
        Show(Tree);
 
    }
    
    system("pause");
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru