首页 > 编程语言 > 详细

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

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

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

技术分享图片

 

 

实现代码:

技术分享图片
//中序遍历的非递归算法
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 遍历二叉树的非递归算法

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!