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

обход бин дерева слева направо - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить наибольшую диагональ прямоугольника http://www.cyberforum.ru/cpp-beginners/thread838408.html
Определить наибольшую диагональ прямоугольника. В массиве заданы координаты противоположных вершин прямоугольников: (a, a)-координаты первой вершины первого прямоугольника, (a, a)-координаты второй вершины первого прямоугольника, (a, a)-координаты первой вершины второго прямоугольника, (a, a)-координаты второй вершины второго прямоугольника и т.д. Использовать функцию определения расстояния между...
C++ Функция, которая будет сохранять дату изменений файлов Добрый день. Я нашел Файловый Менеджер написан на С++ (если надо, скину сюда). Мне нужно, чтобы в ФМ была функция, которая будет хранить дату изменений файлов. Допустим мы зашли туда, сохраняли значения. Вышли. Переместили какой-то файл, зашли обратно и можно было посмотреть где был файл до этого. Вопрос: Возможно ли это сделать? И желательно, как это реализовать? http://www.cyberforum.ru/cpp-beginners/thread838406.html
C++ Написать функцию заполнения начала строки заданным символом.
Написать функцию заполнения начала строки заданным символом.
компиляция bat,vbs в exe C++
Здравствуйте! Суть дела в том что необходимо добавить ветку в реестр со значением, используя права администратора в домене. С этим разобрался написал bat'ы и скрипты все работает, но необходимо все эти файлы скомпелировать в 1 exe файл, чтобы ничего не растерять в исполнении, да и при запуске самого exe обращение шло к конкретному файлу а он обращался к остальным. Кто знает как это делается...
C++ секундомер http://www.cyberforum.ru/cpp-beginners/thread838364.html
Здраствуйте! Мне задали на практику составить программу «Секундомер», позволяющую записывать результаты соревнований и сохранять их в базу, затем выводить отсортированный список на экран. В общем просто секундомер есть, а с такими примочками что бы он сохранял часы и выводил список с помощью хотя бы в memo не получается=(
C++ Задать двумерный массив. Посчитать сумму элементов главной диагонали Задать двумерный массив. Посчитать сумму элементов главной диагонали. # include <iostream.h> //подключение библиотеки void main (){ //главная функция программы const n=5; int mas ; //двумерный массив n на n for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) cin >> mas ; //ввод массива с клавиатуры подробнее

Показать сообщение отдельно
melo16
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 35
15.04.2013, 14:43     обход бин дерева слева направо
обход бинарного дерева с помощью метода поиска в глубину слева направо
проверьте плиз
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
119
120
121
122
123
124
125
126
127
128
129
130
#include <iostream> 
#include <math.h> 
#include <fstream> 
#include <stack> 
using namespace std; 
 
struct MyBiTree 
{
int Num;
int Data;
MyBiTree*left;
MyBiTree*right;
};
 
struct Result 
{
int Num;
int Data;
};
 
MyBiTree* ReadFromFile(); 
 
void CreateTree(MyBiTree**,int); 
 
Result* DFS (MyBiTree*); 
 
int ChoiceWay(MyBiTree*); 
 
int deep; 
int balance; 
int numb=1; 
int N=0; 
ifstream IN("1.txt"); 
 
void CreateTree(MyBiTree** root, int level) 
{
if((deep<level)&&(balance==0)) 
{
(*root)=NULL;
return;
}
 
if (deep<level) 
{
(*root)=new MyBiTree;
(*root)->Num=numb++; 
IN » (*root)->Data; 
(*root)->left=NULL; 
(*root)->right=NULL;
balance--; 
return;
}
 
(*root)=new MyBiTree;
(*root)->Num=numb++;
IN» (*root)->Data;
 
CreateTree(&(*root)->left,level+1);
CreateTree(&(*root)->right,level+1);
return;
 
}
 
MyBiTree* ReadFromFile()
{
MyBiTree *root; 
IN» N; 
deep=log10(N)/log10(2); 
balance=N-pow(2.0,deep)+1; 
 
CreateTree(&root,1); 
 
return root; 
 
}
 
int ChoiceWay(MyBiTree* root) 
{
if((root->left) && (root->left->Num>0)) 
return -1;
if((root->right) && (root->right->Num>0)) 
return 1;
return 0; 
}
 
Result* DFS(MyBiTree* root)
{
Result* result=new Result[N]; 
int i=0; 
stack <MyBiTree*> s; 
root->Num*=-1; 
s.push(root); 
while(!s.empty()) 
{
MyBiTree* p=s.top(); 
if(ChoiceWay(p)==-1) 
{
p->left->Num*=-1; 
s.push(p->left); 
}
else
if(ChoiceWay(p)==1) 
{
p->right->Num*=-1; 
s.push(p->right); 
}
else 
{
result[i].Num=-p->Num; 
result[i++].Data=p->Data; 
s.pop(); 
}
}
return result; 
}
 
int main()
{
 
MyBiTree* Root; 
 
Root=ReadFromFile(); 
 
Result* result=DFS(Root); 
 
 
for(int i=0;i<N;i++) 
cout « "Num:" « result[i].Num « " Data:" « result[i].Data « "\n";
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru