#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct BiTNode {
char data;
struct BiTNode *lchild, *rchild;
}*BiTree,BiTNode;
void create(BiTree *T) {
char ch;
cin >> ch;
if (ch ==','){
*T=NULL;
}
else {
*T = (BiTree)malloc(sizeof(BiTNode));
(*T)->data = ch;
create(&(*T)->lchild);
create(&(*T)->rchild);
}
}
void Preorder(BiTree T) { //先序遍历
if (T == NULL)
return;
cout << T->data;
Preorder(T->lchild);
Preorder(T->rchild);
}
void Inorder(BiTree T) { //中序遍历
if (T == NULL)
return;
Inorder(T->lchild);
cout << T->data;
Inorder(T->rchild);
}
void Postorder(BiTree T) { //后序遍历
if (T == NULL)
return;
Postorder(T->lchild);
Postorder(T->rchild);
cout << T->data;
}
int main() {
BiTree T = NULL;
cout << "以前序遍历的顺序输入二叉树数组" << endl;
create(&T);
cout << "前序遍历二叉树" << endl;
Preorder(T);
cout << endl;
cout << "中序遍历二叉树" << endl;
Inorder(T);
cout << endl;
cout << "后序遍历二叉树" << endl;
Postorder(T);
cout << endl;
return 0;
}
二叉树的遍历(C++实现,结构体)
最新推荐文章于 2022-11-12 23:48:39 发布
这篇博客介绍了如何使用C++实现二叉树的创建及三种遍历方式:先序遍历、中序遍历和后序遍历。通过示例代码展示了递归方法来遍历二叉树节点,并提供了输入二叉树结构的示例。
1708

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



