CbinarySearchTre

 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
#include <iostream>
class CbinarySearchTree {
struct node {
int data;
node* left;
node* right;
};
node* root;
public:
CbinarySearchTree();
~CbinarySearchTree();
void visit();
void insert(int key);
void free();
};
CbinarySearchTree::CbinarySearchTree() {
root = NULL;
}
CbinarySearchTree::~CbinarySearchTree() {
}
CbinarySearchTree::free() {
if (root == NULL) {
}
node* saved = root;
root = root->left;
free();
}
void CbinarySearchTree::visit() {
if (root == NULL) {
std::cout<<"NIL"<<std::endl;
} else {
std::cout<<root->data<<std::endl;
node* saved = root;
root = root->left;
visit();
root = saved->right;
visit();
}
}
void CbinarySearchTree::insert(int key) {
node* newNode = new node;
newNode->date = key;
if (root == NULL) {
root == newNode;
} else {
if (root->data > key) {
root = root->left;
insert(key);
} else if (root->data < key) {
root = root->right;
insert(key);
}
}
}
int main() {
CbinarySearchTree root;
root.visit();
return 0;
}