先序遍历
递归算法
void PreOrder(BiTree T){
if(T!=NULL){
printf(“%c”,T->data) //访问根结点
PreOrder(T->lchild); //递归遍历左子树
PreOrder(T->rchild); //递归遍历右子树
}
}
非递归算法
Void PreOrderTraverse(BiTree b){
InitStack(S);
BiTree p=b; //工作指针p
while(p || !IsEmpty(S)){
while(p){
printf(“%c”,p->data); //先序先遍历结点
Push(S,p); //进栈保存
p=p->lchild;
}
if(!IsEmpty(S))