#include<iostream>
using namsapce std;
typedef struct BiNode
{
struct BiNode* lchild;
struct BiNode* rchild;
char data;
}BiNode,*BiTree;
递归:
void preOrder(BiTree root)
{
if(NULL==root)
return ;
cout<<root->data<<" ";
preOrder(root->lchild);
preOrder(root->rchild);
}
非递归:
void preOrder2(BiTree root)
{
if(NULL==root)
return ;
stack<BiNode*> s;
BiNode* p = root;
cout<<p->data<<" ";
s.push(p);
while(p->lchild)
{
cout<<p->lchild->data<<" ";
s.push(p->lchild);
p = p->lchild;
}
while(!s.empty())
{
p = s.top();
s.pop();
BiNode *q = p->rchild;
while(q!=NULL)
{
cout<<q->data<<" ";
q = q->lchild;
}
}
}