二叉树的前序遍历

xiaoxiao2021-02-28  129

/*

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

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

进入刚才说的那个循环。

*/

void  pre(BTreeNode *root)

{

    if(root==NULL)

        return ;

    LinkStack *stack=CreateStack();

    BTreeNode *p=root;

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

    {

        while(p)

        {

            printf("L",p->data);

            Push(stack,p);

            p=p->lchild;

        }

       if(StackEmpty(stack))

       {

            Pop(stack.&p);

            p=p->rchild;

        }

    }

}

转载请注明原文地址: https://www.6miu.com/read-24121.html

最新回复(0)