25.09.2013, 19:48. Просмотров 581. Ответов 1
дерево выводит только последний узел а не все
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
| #include <iostream>
#include <vector>
using namespace std;
struct Node //звено
{
int x;
Node *l,*r;
};
class Dir
{
public:
void add(int x, Node* &Tree)
{
if(Tree==NULL)
{
Tree=new Node;
Tree->x=x;
Tree->l=Tree->r=NULL;
}
if(x<Tree->x)
if(Tree->l!=NULL)
add(x,Tree->l);
Tree->l=new Node;
Tree->l=Tree->r=NULL;
Tree->x=x;
if(x>Tree->x)
if(Tree->r!=NULL)
add(x,Tree->r);
Tree->r=new Node;
Tree->l=Tree->r=NULL;
Tree->x=x;
}
void show(Node* &Tree) //Функция обхода
{
if (Tree!=NULL) //Пока не встретится пустое звено
{
show(Tree->l); //Рекурсивная функция для вывода левого поддерева
cout<<Tree->x; //Отображаем корень дерева
show(Tree->r); //Рекурсивная функци для вывода правого поддерева
}
}
};
int main()
{
Node *derevo=NULL;
Dir e;
e.add(5,derevo);
e.add(3,derevo);
e.add(4,derevo);
e.add(1,derevo);
e.show(derevo);
system("pause");
return 0;
} |
|