用栈实现
#include <bits/stdc++.h>
using namespace std;
typedef char ElemType;
typedef struct node
{
ElemType data;
struct node *lchild,*rchild;
}BiTNode,*BiTree;
stack<BiTree>s;
void Create(BiTree &T)
{
char ch;
cin>>ch;
if(ch=='@')T=NULL;
else
{
T = new BiTNode;//别忘了申请节点
T->data = ch;
Create(T->lchild);
Create(T->rchild);
}
}
void visit(BiTree T)
{
while(!s.empty()||T!=NULL)
{
if(T)
{
s.push(T);
T=T->lchild;
}
else
{
T=s.top();s.pop();
cout<<T->data;
T=T->rchild;
}
}
}
int main()
{
BiTree T;
Create(T);
visit(T);
return 0;
}