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

Бинарные деревья с обратной связью - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Представляя строки матрицы, расположить их в соответствии с убыванием характеристик http://www.cyberforum.ru/cpp-beginners/thread659194.html
Суть задания такая. Дана целочисленная прямоугольная матрица.Определите номер первого из столбцов,содержащих хотя бы 1 нулевой элемент.Характеристикой строки назовем сумму её отрицательных четных элементов. Представляя строки заданной матрицы,расположить их в соответствии с убыванием характеристик. Если можно то с коментами по строкам. Добавлено через 1 час 30 минут И ещё, программа которая...
C++ ООП Господа у меня возникло 2 вопроса по ООП т.к. только не давно начал его изучать . 1) Не как не могу понять для чего умные люди его создали , т.е. в чём прелести использование его в программах , кому не трудно объясни те или дайте ссылку где можно по этому поводу подчерпнуть информации . 2) Допустим есть такой код - #include <cstdlib> #include <iostream> using namespace std; class My{ ... http://www.cyberforum.ru/cpp-beginners/thread659191.html
C++ Заменить отрицательные элементы одномерного массива целых чисел на нули
Заменить отрицательные элементы одномерного массива целых чисел на нули, а затем подсчитать количество нулевых элементов. 1. отформатировать исходный код программы согласно требованиям к оформлению исходного кода; 2. использовать динамические массивы (размер массива вводится пользователем с проверкой ввода); 3. выявить ограничения на вводимые пользователем значения и, если таковые имеются, не...
если a>=b>=c>=d надо все уровнять к нулю; а сели a<b<c<d. то на каждую цифру привавить 1, а в остальных сллучаях уменшить на 1. C++
a, b, c, d целые числа, если a>=b>=c>=d надо все уровнять к нулю; а сели a<b<c<d. то на каждую цифру привавить 1, а в остальных сллучаях уменшить на 1.
C++ xCode консоль показывает не все элементы http://www.cyberforum.ru/cpp-beginners/thread659144.html
Почему то когда пишу проект в command line tool , к примеру простую программу типа: введите число и потом мы его выводим . Так вот при запуске в консоли, где вводим числа, почему то при вводе к примеру 23445 видно лишь 2, т.е только один элемент.А считает его нормально, т.е выводит нормально. Помогите пожалуйста, как исправить?Где-то что-то в найстройках включил?
C++ Организация инструкции switch Изучаю с++ по книге Липпмана. Помогите правильно огранизовать код: // Программа подсчитвыет количество гласных символов c // объекта cin при помощи инструкции switch. // Измените рассматриваемую программу так, чтобы она также // подсчитывала прописные символы. Изменить данную программу так // чтобы она подсчитывала количество встречных двусимвольных // последовательностей ff, fl, fi. ... подробнее

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

Бинарные деревья с обратной связью - C++

27.09.2012, 17:51. Просмотров 470. Ответов 3
Метки (Все метки)

Дан адрес P1 вершины дерева — записи типа TNode, содержащей поля Data (целого типа), Left, Right и Parent (типа PNode — указателя на TNode). Поля Left и Right указывают на дочерние вершины, а поле Parent — на родительскую вершину данной вершины (если вершина является корнем дерева, то ее поле Parent равно nil). Для данной вершины вывести указатели PL, PR и P0 на ее левую и правую дочерние вершины и родительскую вершину, а также указатель P2 на ее сестру, т. е. другую вершину дерева, имеющую в качестве родительской вершину с адресом P0. Если некоторые из перечисленных вершин не существуют, то вывести для них значение nil. Помогите пожайлуста! Вот пример программы
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <iostream>
#include <fstream>
using namespace std;
struct Node
{
int info;
Node *left;
Node *right;
};
Node * addNode(int key)
{
Node * tmp;
tmp = new Node;
tmp->info = key;
tmp->left = NULL;
tmp->right = NULL;
return tmp;
}
bool add(Node * first, int key)
{
Node * tmp = first;
if(tmp->info == key) return false;
if(tmp->info > key)
{
if(tmp->left) return add(tmp->left,key);
else
{
tmp->left = addNode(key);
return true;
}
}
else
{
if(tmp->right) return add(tmp->right,key);
else
{
tmp->right = addNode(key);
return true;
}
}
}
bool add_not_recursiv(Node *first,int key)
{
Node * tmp = first;
 
while(tmp!= NULL)
{
if(tmp->info == key) return false;
if(tmp->info > key)
{
if(tmp->left)tmp = tmp->left;
else break;
}
else
{
if(tmp->right)tmp = tmp->right;
else break;
}
}
if(tmp->info > key)tmp->left = addNode(key);
else tmp->right = addNode(key);
return true;
}
 
int min(Node *first)
{
Node *tmp = first;
while(tmp->left) tmp = tmp->left;
return tmp->info;
}
 
void print_Tree(Node * p,int level)
{
if(p)
{
print_Tree(p->left,level + 1);
for(int i = 0;i< level;i++) cout«" ";
cout « p->info « endl;
print_Tree(p->right,level + 1);
}
}
void print(Node *p)
{
if(p)
{
print(p->left);
 
cout « p->info «" ";
 
print(p->right);
}
 
}
int main()
{
Node *first;
ifstream f;
f.open("input.txt",ios::in);
int key;
f»key;
first = addNode(key);
/*while(!f.eof())
{
f » key;
if(!add(first,key)) cout«"Repeat "«key«endl;
}*/
 
while(!f.eof())
{
f » key;
if(!add_not_recursiv(first,key)) cout«"Repeat "«key«endl;
}
print_Tree(first,0);
cout«" Min = "«min(first)«endl;
cout «"Sort"«endl;
print(first);
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru