码迷,mamicode.com
首页 > 编程语言 > 详细

23 遍历二叉树的非递归算法

时间:2019-11-13 23:47:32      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:its   while   data   入栈   col   结束   div   图片   inf   

例子:中序遍历非递归算法

技术图片

 

 

实现代码:

技术图片
//中序遍历的非递归算法
int InOrderTraverse_No_DiGui(BiTree T){
    BiTree p;       //顶底指向二叉树中节点的游标
    InitStack(S);       //初始化栈
    p = T;      //p指向所给的二叉树根节点
    while(p || !StackEmpty(S)){
        if(p){      //若当前节点非空
            Push(S, p);     //将当前节点入栈
            p = p->lchild;      //游标指向当前节点的左孩子
        }else{
            Pop(S, q);      //出栈,将栈顶节点返回到一个二叉树节点类型的变量 q 中
            printf("%c", q->data);      //输出该节点的数据域
            p = q->rchild;      //游标指向当前节点的右孩子
        }
    }//while

    return 1;       //遍历结束
}
View Code

 

 

 

23 遍历二叉树的非递归算法

标签:its   while   data   入栈   col   结束   div   图片   inf   

原文地址:https://www.cnblogs.com/CPU-Easy/p/11854078.html

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