Java數據結構系列之――樹(4):二叉樹的中序遍歷的遞歸與非遞歸實現
來源:程序員人生 發布時間:2014-12-22 08:36:22 閱讀次數:2408次
package tree.binarytree;
import java.util.Stack;
/**
* 2叉樹的中序遍歷:遞歸與非遞歸實現
*
* @author wl
*
*/
public class BiTreeInOrder {
// 中序遍歷的遞歸實現
public static void biTreeInOrderByRecursion(BiTreeNode root) {
if (root == null) {
return;
}
biTreeInOrderByRecursion(root.leftNode);
System.out.println(root.data);
biTreeInOrderByRecursion(root.rightNode);
}
// 中序遍歷的非遞歸實現
public static void biTreeInOrder(BiTreeNode root) {
Stack<BiTreeNode> stack = new Stack<BiTreeNode>();// 棧,用于寄存2叉樹的結點
BiTreeNode current = root;// 當前結點
while (current != null || !stack.empty()) {
while (current != null) {
stack.push(current);
current = current.leftNode;
}
if (!stack.empty()) {
current = stack.pop();
System.out.println(current.data);
current = current.rightNode;
}
}
}
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈