考研共济网,考研咨询,硕士研究生招生简章,研究生录取信息
考研书城 会员服务 辅导报名
购物须知 购买流程 在线支付指南
定单跟踪 批评建议 广告业务
会员名: 密码: 免费注册 站点导航 设为首页
当前位置:首页- 考研专业资料下载 - 考研专业课笔记
二叉树三种遍历的非递归算法笔记
2006-6-30 16:52:14  考研共济网 

二叉树三种遍历的非递归算法(背诵版)
本贴给出二叉树先序、中序、后序三种遍历的非递归算法,此三个算法可视为标准算法,直接用于考研答题。
同济大学四平路
1.先序遍历非递归算法
#define maxsize 100
typedef struct
{
   Bitree Elem[maxsize];
    int top;
}SqStack;
void PreOrderUnrec(Bitree t)
{
    SqStack s;
    StackInit(s);
    p=t;
   
    while (p!=null || !StackEmpty(s))
    {
        while (p!=null)   //遍历左子树
        {
  visite(p->data);
  push(s,p);
  p=p->lchild;      
        }//endwhile
       
        if (!StackEmpty(s))         //通过下一次循环中的内嵌while实现右子树遍历
        {
  p=pop(s);
  p=p->rchild;       
        }//endif
     
    }//endwhile
   
}//PreOrderUnrec
2.中序遍历非递归算法
#define maxsize 100
typedef struct
{
    Bitree Elem[maxsize];
    int top;
}SqStack;
void InOrderUnrec(Bitree t)
{
    SqStack s;
    StackInit(s);
    p=t;
    while (p!=null || !StackEmpty(s))
    {
        while (p!=null)   //遍历左子树
        {
  push(s,p);
  p=p->lchild;
        }//endwhile
       
        if (!StackEmpty(s))
        {
  p=pop(s);
  visite(p->data);        //访问根结点
  p=p->rchild;  //通过下一次循环实现右子树遍历
        }//endif  
   
    }//endwhile
}//InOrderUnrec同济大学四平路
3.后序遍历非递归算法
#define maxsize 100
typedef enum{L,R} tagtype;
typedef struct
{
    Bitree ptr;
    tagtype tag;
}stacknode;
typedef struct
{
    stacknode Elem[maxsize];
    int top;
}SqStack;
void PostOrderUnrec(Bitree t)
{
    SqStack s;
    stacknode x;
    StackInit(s);
    p=t;
   
    do
    {
        while (p!=null)        //遍历左子树
        {
  x.ptr = p;
  x.tag = L;         //标记为左子树
  push(s,x);
  p=p->lchild;
        }
   
        while (!StackEmpty(s) && s.Elem[s.top].tag==R) 
        {
  x = pop(s);
  p = x.ptr;
  visite(p->data);   //tag为R,表示右子树访问完毕,故访问根结点      
        }
       
        if (!StackEmpty(s))
        {
  s.Elem[s.top].tag =R;     //遍历右子树
  p=s.Elem[s.top].ptr->rchild;       
        }   
    }while (!StackEmpty(s));
}//PostOrderUnrec
考研共济网http://www.kaoyantj.com
到论坛说两句】【收藏到vivi】【 繁體】【打印正文】【关闭
相关链接
·西南财经大学政治经济学课堂笔记课堂笔记 [06-6-30]
·西南财经大学货币银行学笔记 [06-6-30]
·西南财经大学2005年考研辅导班经济学(1、2)笔记 [06-6-30]
·西南财经大学2005年考研辅导班管理学笔记 [06-6-30]
·西南财经大学2004年考研辅导班经济学(1、2)笔记 [06-6-30]
·西南财经大学2004年考研辅导班经济法笔记 [06-6-28]
·西南财经大学2003年考研辅导班民法笔记 [06-6-28]
·西南财经大学2003年考研辅导班经济法笔记 [06-6-28]
·西南财经大学2003年管理学辅导班笔记 [06-6-28]
·西南财经大学2002年考研辅导班经济学(1、2)笔记 [06-6-28]
『最新文章』
·华东师范大学2005年考研专业课试卷人文地理学总结及习题
·北京大学心理学专业听课笔记二
·心理统计学笔记
·普通心理学笔记
·心理诊断与心理测验辅导笔记
『热点文章』
·人大高鸿业版考研西方经济学笔记(一)
·人大高鸿业版考研西方经济学笔记(七)
·北京大学2005年考研辅导法理学笔记
·西方经济学名词解释汇编[1]
·中国人民大学宪法笔记
站点导航 | 在线支付指南 | 广告联系 | 客户服务 | 购物须知 | 购物流程 | 投诉建议 | 客户公告 | 免则条款
客户咨询: 021-33626036,33626037(售前)021-33626038,33626039(存款确认、传真及售后服务)
汇款地址: 上海市同济大学校本部研究生8#信箱 黄翔 邮编:200092
公司地址: 上海市杨浦区同济联合广场底楼(彰武路48号112室,同济大学本部四平路校门正对面)考研共济网门市地图地图 8:30--17:30 全年无休
   版权所有©2000-2007 考研共济网KaoYanTJ.com  考研共济网info@kaoyantj.com
方便快捷的会员自动下载服务
方便快捷的会员自动下载服务