码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构_二叉树后序遍历

时间:2017-09-07 21:25:04      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:遍历二叉树   tac   stack   sem   get   它的   ack   bsp   code   

/*
后序遍历二叉树
思路:
1,若当前结点没有左右孩子,则访问并出栈
2,若当前结点有左孩子或右孩子,并且孩子被访问过,则访问并出栈(若当前结点有左右孩子,只要有一个孩子已被访问,那么它的两个孩子都已被访问,这与入栈顺序有关,它的孩子在栈中一定在它的上方)
3,若当前结点有左孩子或右孩子,并且都没有被访问,那么先将右孩子入栈,再将左孩子入栈
*/

void beh_Order(BiTree T)
{
    InitStack(S); 
    BiTree pCur,pPre=NULL,p;
    Push(s,T);
    while(!IsEmpty(S)){
        pCur = getTop(stack);
        if((pCur->lchild==NULL && pCur->rchild==NULL) ||   
            (pPre!=NULL && (pCur->lchild==pPre || pCur->rchild==pPre)))  
        {    
            visit(pCur);  
            Pop(stack,p);  
            pPre = pCur;  
        }  
        else  
        {    
            if(pCur->rchild != NULL)  
                Push(stack,pCur->rchild);  
            if(pCur->lchild != NULL)  
                Push(stack,pCur->lchild);  
        }  
    }
}

 

数据结构_二叉树后序遍历

标签:遍历二叉树   tac   stack   sem   get   它的   ack   bsp   code   

原文地址:http://www.cnblogs.com/jasonlixuetao/p/7491558.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!