-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
121 lines (99 loc) · 2.97 KB
/
main.cpp
File metadata and controls
121 lines (99 loc) · 2.97 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// Sample driver
// EE 312 Fall 2018
//
// The BST should work for any data type or object.
// Other user created objects must have the << operator overloaded for
// output.
//
#include <iostream>
#include <fstream>
#include <random>
#include <vector>
#include "BST312.h"
using namespace std;
int main(){
vector<int> input;
for (int i=0; i<15; i++){
input.push_back(i);
}
random_shuffle(input.begin(),input.end());
for (int i=0; i<input.size(); i++){
cout << input[i] << " ";
}
cout << endl << endl;
BST_312<int> tree;
for (int i=0; i<input.size(); i++){
tree.insertItem(input[i]);
}
cout << "Node count: " << tree.countNodes() << endl << endl;
vector<int> inOrder = tree.inOrderTraversal();
cout << "In order traversal:" << endl;
for (int i=0; i<inOrder.size(); i++){
cout << inOrder[i] << " ";
}
cout << endl << endl;
vector<int> preOrder = tree.preOrderTraversal();
cout << "Pre order traversal:" << endl;
for (int i=0; i<preOrder.size(); i++){
cout << preOrder[i] << " ";
}
cout << endl << endl;
vector<int> postOrder = tree.postOrderTraversal();
cout << "Post order traversal:" << endl;
for (int i=0; i<postOrder.size(); i++){
cout << postOrder[i] << " ";
}
cout << endl << endl;
cout << "Is item in list: " << endl;
for (int i=0; i<input.size(); i++){
cout << input[i] << ": " << tree.isItemInTree(input[i]) << endl;
}
cout << 100 << ": " << tree.isItemInTree(100) << endl;
cout << 86 << ": " << tree.isItemInTree(86) << endl;
cout << 23 << ": " << tree.isItemInTree(23) << endl;
tree.makeEmpty();
vector<int> afterEmpty = tree.inOrderTraversal();
cout << "After empty: " << endl;
for (int i=0; i<afterEmpty.size(); i++){
cout << afterEmpty[i] << " " << endl;
}
cout << 100 << ": " << tree.isItemInTree(100) << endl;
cout << "Node count: " << tree.countNodes() << endl;
}
/*
template <typename T>
//using namespace std;
void print(vector<T> vec){
for(int i = 0 ; i < vec.size() ; i++){
cout << vec[i] << endl;;
}
}
int main() {
ifstream inFile;
inFile.open("test.txt");
BST_312<string> bst;
string s;
inFile >> s;
while (inFile) {;
cout << "inserting ... " << s << endl;
bst.insertItem(s);
inFile >> s;
}
cout << "postorder traversal is " << endl;
print(bst.postOrderTraversal());
cout << endl;
cout << "preorder traversal is " << endl;
print(bst.preOrderTraversal());
cout << endl;
cout << "inorder traversal is " << endl;
print(bst.inOrderTraversal());
cout << endl;
cout << "Remove items " << endl;
cout << "number of nodes in tree before delete is " << bst.countNodes() << endl;
s = "tree";
bst.deleteItem(s);
print(bst.postOrderTraversal());
cout << endl;
cout << "number of nodes in tree after delete is " << bst.countNodes() << endl;
cout << endl;
}*/