• 非递归前序遍历,效率高 和 中序遍历代码都相似


       //非递归前序遍历
        static void NpreOrder(Node node){
    Stack
    <Node> S=new Stack<Node>(); Node p=node;//初始的时候有2个值 while(!S.isEmpty()||p!=null){   //算法1,栈不为空或者p指向的不是空循环执行下面步骤 if(p!=null){          //算法2,当p指向的不是空的时候,将p指向结点进站 System.out.print("<<<"); System.out.print(n.getKey()); S.push(p);       //结点进站 n=n.leftNode;     //将指针指向左孩子 } else{ //算法3,如果p指向为空::栈顶出栈并把值赋给指针 p=sk.pop(); p=p.rightNode; }
         } }
     
      static void NinOrder(BinTree node){
            java.util.Stack<BinTree> s=new java.util.Stack<BinTree>();  //循环前的变量1做好准备
            BinTree n=node;                       //变量2做好准备
            while(n!=null||!s.isEmpty()){
                if(n!=null){
                    s.push(n);
                    n=n.lchild;
                }
                else{
                    n=s.pop();
                    System.out.println(n.date);
                    n=n.rchild;
    
                }
            }}
        
  • 相关阅读:
    个人第四次作业
    个人第四作业
    英语学习app——Alpha发布2
    英语学习app——Alpha发布1
    团队作业---系统设计
    团队第二次作业:需求分析
    第三次作业:结对编程
    团队第一次作业
    Web测试实践 第二天
    Web测试实践 第一天
  • 原文地址:https://www.cnblogs.com/cs-lcy/p/7202783.html
Copyright © 2020-2023  润新知