二叉树的前序遍历

来源:互联网 发布:编程开发培训机构 编辑:程序博客网 时间:2024/06/06 02:21

/*

二叉树的前序遍历思想很简单,先建立一个栈方便我们在遍历二叉树的时候存储数据,然后开始前序遍历,找到根节点,输出,

然后入栈,再找根节点的左孩子结点,继续输出,入栈,直到左孩子结点为空,左孩子结点都已经找完,然后出栈,接着找右孩子节点,

进入刚才说的那个循环。

*/


void  pre(BTreeNode *root)

{

    if(root==NULL)

        return ;

    LinkStack *stack=CreateStack();

    BTreeNode *p=root;


    while(p!=NULL||!StackEmpty(stack))

    {

        while(p)

        {

            printf("%4c",p->data);

            Push(stack,p);

            p=p->lchild;

        }

       if(StackEmpty(stack))

       {

            Pop(stack.&p);

            p=p->rchild;

        }

    }

}

原创粉丝点击