赛迪网 > IT技术 Java > 技术动态
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

进阶--看java做的树的三种非递归算法

发布时间:2008.01.22 04:46     来源:赛迪网    作者:dreamweaver

//前序遍历
public void preorder(int root)
{
    int p=root;
    int s[]=new int [MaxSize];  //定义栈
    if(p!=-1)
    {
        int top=0;
        s[top]=p;
        while(top>=0)
        {
             p=s[top--];
             System.out.println(treedata[p]);
             if(rchild[p]!=-1)
             {
                 top++;
                 s[top]=rchild[p];
             }
        }
        if(lchild[p]!=-1)
        {
            top++;
            s[top]=lchild[p];
        }
    }
}
//中序遍历
public void inorder(int root)
{
    int p=root;
    int s[]=new int[MaxSize];
    int top=-1;
    do
    {
         while(p!=-1)
         {
             s[++top]=p;
             p=rchild[p];          
         }
         if(top>=0)
         {
             p=s[top--];
             System.out.println(treedata[p]);
             p=rchild[p];
         }
    }while(top>=0 || p!=-1)
}
//后序遍历
public void posorder(int root)
{
     int p=root;
     int s[]=new int[MaxSize];
     int top=-1;
     int mark=0;
     do
     {
          while(p!=-1 && mark=0)
          {
               s[++top]=p;
               p=rchild[p];
               mark=0;.
          }
          if(top>=0)
          {
               p=s[top];
          }
          if(rchild[p]==-1)
          {
              System.out.println(treedata[p]);
              top--;
              mark=p;
          }
          else
           if(rchild[p]!=-1 && rchild[p]=mark)
           {
                System.out.println(treedata[p]);
                top--;
                mark=p;
           }  
           else
            {
                p=rchild[p];
                mark=0;
            }                                                                                                                                                                                            )
     }while(top>=0);

        (责任编辑:包春林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 高级:运用Jakarta Struts的七大实战心法 (01-21) · JDK核心API--Java列表对象的性能分析 (01-21)
· 软件测试:软件测试的基础知识概要介绍 (01-21) · Java GUI--浅谈Swing是MVC设计的典范 (01-21)
· 浅谈Hibernate的flush机制 (01-21) · Java语言深入--对JAVA 的多线程浅析 (01-18)
· JSP/Servlet/JSF--标签库的深入研究 (01-18) · Java入门:String和StringBuffer之概览 (01-18)
· 学java得这样学,学习东西确实也得这样 (01-18) · 进阶:怎样成为优秀的软件模型设计者? (01-18)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 网银交易收费 我国银行业如何达国际化标准
· 家庭信息化普及率提高 网上缴费成为新时尚
· 五条黄金准则能够让CIO巧妙加薪 CIO焦虑调查
· 网上书店解决方案 深圳边检指挥中心ITSM项目
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统