二叉树的结点类型定义
typedef struct node
{
int data;
struct node *lchild,*rchild;
}bitree;
/*编写二叉树先序遍历的递归算法*/
void preorder(bitree *bt)
{
if(bt!=null)
{
visit(bt);
preorder(bt->lchild);
preorder(bt->rchild);
}
}
/*编写二叉树先序遍历的非递归算法*/
void preorder(bitree *bt)
{
bitree *p=bt;
InitStack(s);
while(p||!Empty(s))
{
if(p)
{
vist(p);
push(p);
p=p->lchild;
}
else
{
p=pop(s);
p=p->rchild;
}
}
}