1.代码
#include<iostream>
using namespace std;
typedef struct Node
{
char data;
struct Node* lchild;
struct Node* rchild;
}Tree;
Tree* T;
void CreatTree(Tree* &T) //创建二叉树
{
char ch;
cin>>ch;
if (ch==‘#‘)
{
T = NULL;
}
else
{
T=new Tree;
T->data=ch;
CreatTree(T->lchild);
CreatTree(T->rchild);
}
}
void PreOrder(Tree* &T)//前序遍历
{
if (T == NULL)
return;
else
{
cout << T->data << " ";
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
void InOrder(Tree* &T)//中序遍历
{
if (T == NULL)
return;
else
{
InOrder(T->lchild);
cout <<T->data<< " ";
InOrder(T->rchild);
}
}
void PostOrder(Node* &T)//后续遍历
{
if (T == NULL)
return;
else
{
PostOrder(T->lchild);
PostOrder(T->rchild);
cout <<T->data<< " ";
}
}
int main()
{
CreatTree(T);
cout << "前序遍历:";
PreOrder(T);
cout << endl;
cout << "中序遍历:";
InOrder(T);
cout << endl;
cout << "后序遍历:";
PostOrder(T);
cout << endl;
return 0;
}
2.运行结果截图
对应二叉树图
原文:https://www.cnblogs.com/jmu2018wangluo2/p/10779326.html