#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;
}
二叉树的创建和(递归)遍历
最新推荐文章于 2023-04-01 14:22:01 发布
本文详细介绍了如何使用C++创建二叉树,并实现先序、中序和后序遍历。通过递归方式构造二叉树,然后演示了三种不同的遍历方法,帮助读者深入理解二叉树的基本操作。
796

被折叠的 条评论
为什么被折叠?



