-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path21.cpp
More file actions
104 lines (98 loc) · 1.72 KB
/
21.cpp
File metadata and controls
104 lines (98 loc) · 1.72 KB
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
#include <iostream>
#include <std_lib_facilities.h>
using namespace std;
struct Node
{
int x;
Node *l,*r;
};
void show(Node *&Tree)
{
if (Tree!=NULL)
{
show(Tree->l);
cout<<Tree->x<<endl;
show(Tree->r);
}
}
void del(Node *&Tree){
if (Tree!=NULL)
{
del(Tree->l);
del(Tree->r);
delete Tree;
Tree = NULL;
}
}
void sum(Node *&Tree,int *s){
if (Tree!=NULL){
*s+=Tree->x;
sum(Tree->l,s);
sum(Tree->r,s);
}
}
void isitin(int x,Node *&MyTree)
{
if (MyTree!=NULL)
{
if (x=MyTree->x)
{
cout << "True"<<'\n';
}
if (x>MyTree->x){
isitin(x,MyTree->l);
}
if (x<MyTree->x){
isitin(x,MyTree->r);
}
}
else
cout << "False"<<'\n';
}
void add_node(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_node(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_node(x,MyTree->r);
else
{
MyTree->r=new Node;
MyTree->r->l=MyTree->r->r=NULL;
MyTree->r->x=x;
}
}
}
int main()
{
int n,c;
cout << "enter n" <<'\n';
cin >> n;
cout << "enter x"<<'\n';
Node *Tree=NULL;
int *k=new int;
*k=0;
for (int i=0;i<n;i++){
cin >> c;
add_node(c,Tree);
}
//show(Tree);
sum(Tree,k);
cout <<*k<<endl;
del(Tree);
}