递归
源代码:
//中序遍历--递归
public void theFirstTraversal(Node n){
if(n.getLeftNode()!=null)
theFirstTraversal(n.getLeftNode());
printNode(n);
if(n.getRightNode()!=null)
theFirstTraversal(n.getRightNode());
}
堆栈
源代码:
//中序遍历--堆栈
public void theFirstTraversalStack(Node root){
Stack<Node> stack=new Stack<Node>();
Node node=root;
while (node!=null || stack.size()>0){
if(node!=null){
stack.push(node);
node=node.getLeftNode();
}else{
node=stack.pop();
printNode(node);
node=node.getRightNode();
}
}
}