層次遍歷二叉樹和採用棧的方式遍歷二叉樹
阿新 • • 發佈:2018-12-12
//中序遍歷非遞迴 @Override public void inOrderByStack() { System.out.println("中序遍歷非遞迴操作"); //建立棧 Deque<Node> stack=new LinkedList<Node>(); Node current=root; while(current!=null||!stack.isEmpty()) { while(current!=null) { stack.push(current); current=current.leftChild; } if(!stack.isEmpty()) { current=stack.pop(); System.out.println(current.value+""); current=current.rightChild; } } System.out.println(); } //層次遍歷二叉樹 private void preOrderByStack(Node root2) { if(root==null) { return; } Queue<Node> queue=new LinkedList<Node>(); queue.add(root); while(queue.size()!=0) { int len=queue.size(); for(int i=0;i<len;i++) { Node temp=queue.poll(); System.out.println(temp.value); if(temp.leftChild!=null) { queue.add(temp.leftChild); } if(temp.rightChild!=null) { queue.add(temp.rightChild); } } } }
層次遍歷二叉樹:一層一層地去遍歷
採用棧的方式遍歷二叉樹:採用棧先進先出的特徵