Skip to content

Commit d010fa7

Browse files
authored
Merge pull request #40 from Ericyuanhui/test
Binary Tree
2 parents 4802337 + 3020488 commit d010fa7

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#include <iostream>
2+
3+
using namespace std;
4+
5+
class BinaryNode {
6+
public:
7+
char data;
8+
BinaryNode *left;
9+
BinaryNode *right;
10+
11+
BinaryNode(char c) {
12+
data = c;
13+
}
14+
};
15+
16+
void CreateTree(BinaryNode *&t) {
17+
char c;
18+
cin>>c;
19+
if(c == '#')
20+
t = NULL;
21+
else {
22+
t = new BinaryNode(c);
23+
t->left = NULL;
24+
t->right = NULL;
25+
CreateTree(t->left);
26+
CreateTree(t->right);
27+
}
28+
}
29+
30+
void PreOrder(BinaryNode *&t) {
31+
if(t) {
32+
cout<<" "<<t->data;
33+
PreOrder(t->left);
34+
PreOrder(t->right);
35+
}
36+
}
37+
38+
void MidOrder(BinaryNode *t) {
39+
if(t) {
40+
MidOrder(t->left);
41+
cout << " " << t->data;
42+
MidOrder(t->right);
43+
}
44+
}
45+
46+
void PostOrder(BinaryNode *t) {
47+
if (t) {
48+
PostOrder(t->left);
49+
PostOrder(t->right);
50+
cout << " " << t->data;
51+
}
52+
}
53+
54+
int main() {
55+
BinaryNode *p1;
56+
CreateTree(p1);
57+
cout << "Pre order print" << endl;
58+
PreOrder(p1);
59+
cout << "\n" ;
60+
cout << "Middle order print" << endl;
61+
InOrder(p1);
62+
cout << "\n";
63+
cout << "Post order print" << endl;
64+
PostOrder(p1);
65+
return 0;
66+
}
67+

0 commit comments

Comments
 (0)