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

Построить бинарное дерево, элементами которого являются числа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Добавить функции min, max , sqrt http://www.cyberforum.ru/cpp-beginners/thread870252.html
// OPN.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <string> #include <stdlib.h> #include <locale> #include <math.h> using namespace std;
C++ Матрицы. Найти сумму элементов в тех столбцах , которые содержат хотя бы один отрицательный элемент характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. переставляя столбцы заданной матрицы, расположить их с ростом характеристики . найти сумму элементов в тех столбцах , которые содержат хотя бы один отрицательный элемент http://www.cyberforum.ru/cpp-beginners/thread870236.html
C++ Написать программу, в которой объединение используется для хранения информации
Здравствуйте! Помогите написать программу. сделать на Borland C++ под DOS или Microsoft Visual C++ консольное приложение (Win 32 Console Application). Написать программу, в которой объединение используется для хранения информации об одной из геометрических фигур: трапеции или треугольнике. Программа вычисляет площадь данных фигур и выводит результат. Предусмотреть меню. Результаты работы...
В одномерном массиве вычислить номер минимального элемента массива C++
прошу помощи в одномерном массиве состоящий из n элементов вычислить: 1)номер минимального элемента массива 2)сумму элементов массива , расположенных между первым и вторым отрицательным элементами преобразовать массив таким образом , чтобы сначала располагались все элементы , модель которых не превышает 1, а потом все остальные
C++ Массив в таймере http://www.cyberforum.ru/cpp-beginners/thread870225.html
Никто не знает, почему может не работать массив в таймере? Там вот такая запись: for(i=0;i<2;i++) { for(j=0;j<10;j++) { if(((x>=x1)&&(x<=x1+44))&&((y==145+r)||(y==125+r)||(y==100-r)||(y==145-r)||(y==125-r)||(y==100+r))) //проверка по горизонтали { if(activ==1) { dy=-dy;
C++ Инициализация конструктора по умолчанию почему если инициализировать поля класса в конструкторе по умолчанию так: MyClass::MyClass() { int m=0; int t=0; } то поля не обнулятся,а если так: MyClass::MyClass() { подробнее

Показать сообщение отдельно
miha000
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 5
19.05.2013, 14:48     Построить бинарное дерево, элементами которого являются числа
Помогите решить задание: построить бинарное дерево, элементами которого являются числа. Удалить из дерева все повторяющиеся элементы.
Мой код:
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
99
100
101
102
#include <iostream>
 
using namespace std;
 
 
struct it{
       int num;
       it *l, *r;
       };
       
 
it *head=NULL;
it *headf=NULL;
 
//-----------------------------------------------------
it *crt(int n)
{
     it *temp=new it;
     temp->num=n;
     temp->r=temp->l=0;
     return temp;
     }
 
void add(it *&el, int n){
     if(el==NULL){el=crt(n);}
     else if(n>=el->num){
                         if(el->r==NULL)el->r=crt(n);
                         else add(el->r, n);
                         }
     else if(n<el->num){
                         if(el->l==NULL)el->l=crt(n);
                         else add(el->l, n);
                         }
 
     }
 
 
void add_new(it *&el, int n){
     if(el==NULL){el=crt(n);}
     else if(n>el->num){
                         if(el->r==NULL)el->r=crt(n);
                         else add(el->r, n);
                         }
     else if(n<el->num){
                         if(el->l==NULL)el->l=crt(n);
                         else add(el->l, n);
                         }
 
     }
 
 
//---------------------------------------
void print(it *el)
{
 if(el!=NULL){
              print(el->r);
              cout<<el->num<<endl;
              print(el->l);
              }
}
 
void same(it *el){
                  if(el!=NULL)
                  {
                              same(el->l);
                              add_new(headf, el->num);
                              same(el->r);
                              }
                  }
 
void clear(it *el){
     if(el){
                   clear(el->r);
                   clear(el->l);
                   delete el;
                   }        
                   }
 
 
//--------------------------------- 
int main(){
cout<< "vvedite elementy"<<endl;
int n;
for(int i=0; i<6; i++)
{
        cin>>n;
        add(head, n);
}
cout<<endl;
 
print(head);
 
same(head);
clear(head);
        
cout<<"\n\n";
print(headf);
 
clear(headf);
system("Pause");
return 0;
}
В том проблема что удаляются не все повторения...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru