#include <iostream>
#include <stack>
using namespace std;
struct BitNode {
int value;
BitNode *left;
BitNode *right;
};
BitNode *Creat_BitNode() {
BitNode *P_node;
int value_in; cin >> value_in;
if(value_in != -1) {
P_node = new BitNode();
P_node -> value = value_in;
P_node -> left = Creat_BitNode();
P_node -> right = Creat_BitNode();
} else {
P_node = NULL;
}
return P_node;
}
void Pre_tree(BitNode *P_node) {
if(P_node != NULL) {
cout << P_node -> value << " ";
Pre_tree(P_node -> left);
Pre_tree(P_node -> right);
}
}
void Mid_tree(BitNode *P_node) {
if(P_node != NULL) {
Mid_tree(P_node -> left);
cout << P_node -> value << " ";
Mid_tree(P_node -> right);
}
}
void Beh_tree(BitNode *P_node) {
if(P_node != NULL) {
Beh_tree(P_node -> left);
Beh_tree(P_node -> right);
cout << P_node -> value << " ";
}
}
int main() {
cout << "Creat the BitTree, '-1' is the stop flag!" << endl;
BitNode *head = Creat_BitNode();
cout << "Preorder traversal!" << endl;
Pre_tree(head); cout << endl;
cout << "In-order traversal!" << endl;
Mid_tree(head); cout << endl;
cout << "Post-order traversal!" << endl;
Beh_tree(head); cout << endl;
system("pause");
return 0;
}
二叉树的创建和(递归)遍历
最新推荐文章于 2022-11-29 21:13:27 发布