算法:非递归遍历二叉树
来源:互联网 发布:淘宝js跳转楼层 编辑:程序博客网 时间:2024/05/18 02:09
private int node;
private Node leftNode;
private Node rightNode;
public Node(int node){
this.node = node;
}
public int getNode() {
return node;
}
public void setNode(int node) {
this.node = node;
}
public Node getLeftNode() {
return leftNode;
}
public void setLeftNode(Node leftNode) {
this.leftNode = leftNode;
}
public Node getRightNode() {
return rightNode;
}
public void setRightNode(Node rightNode) {
this.rightNode = rightNode;
}
}
import java.util.Stack;
/*
* 递归与非递归先序遍历二叉树
*/
public class Two {
public static void main(String[]args){
Node A = new Node(6);
Node B = new Node(3);
Node C = new Node(9);
Node D = new Node(1);
Node E = new Node(5);
Node F = new Node(7);
Node G = new Node(2);
Node H = new Node(4);
Node I = new Node(8);
A.setLeftNode(B);
A.setRightNode(C);
B.setLeftNode(D);
B.setRightNode(E);
C.setLeftNode(F);
D.setRightNode(G);
E.setLeftNode(H);
F.setRightNode(I);
Stack<Node> stack = new Stack<Node>();
stack.push(A);
Node a = stack.pop();
preSearch(A);
}
static void preSearch(Node node){
Stack<Node> stack = new Stack();
while(node!=null || stack.size()>0){
if(node!=null){
System.out.println(node.getNode());
stack.push(node);
node = node.getLeftNode();
}else{
node = stack.pop();
node = node.getRightNode();
}
}
}
}
- 二叉树遍历非递归算法
- 二叉树遍历的非递归算法
- 非递归遍历二叉树算法
- 二叉树遍历非递归算法
- 二叉树 遍历非递归算法
- 遍历二叉树的非递归算法
- 遍历二叉树的非递归算法
- 二叉树遍历算法非递归
- 二叉树遍历(非递归算法)
- 二叉树遍历非递归算法
- 二叉树遍历之非递归算法
- 二叉树遍历之非递归算法
- 非递归二叉树层次遍历算法
- 二叉树的遍历非递归算法
- 遍历二叉树的非递归算法
- 二叉树遍历算法(非递归)
- 二叉树遍历之非递归算法
- 二叉树的遍历非递归算法
- 字符设备驱动框架3:深入探讨—完整的驱动代码工程
- nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for propert
- 与csdn的缘分
- HDOJ4417 Super Mario [主席树 + 二分]
- 深度学习开篇简介-人工智能
- 算法:非递归遍历二叉树
- Vocaloid
- android studio添加代码(方法)注释功能
- Unity中物体如何移动到鼠标点击位置
- Java集合归纳-<三>Map
- mysql @value -= 用法
- 排队论应用(M/M/1/∞)
- 一份简单的gulpfile 配置文件
- 从头到尾打印链表