》利用栈实现
StatusPreOrderTraverse(BiTree T,Status(*Visit)(TElemType e)){//先序遍历二叉链表,每个元素调用Visit
InitStack(S);P=T;
while (p||StackEmpty(S)){
if(p){
Visit(p->data); //访问根结点
push(S,p);p=p->lchild; //根结点入栈,遍历左子树
}//if
else{ //根结点出栈,遍历右子树
pop(S,p);
p=p->rchild;
}//else
}//while
return OK;
}//PreOrderTraverse
》递归实现
void PreOrder(BiTree T){
if(T){
printf("%c",T->data); //访问结点
PreOrder(T->lchild); //遍历左子树
PreOrder(T->rchild); //遍历右子树
}//if
}//PreOrder