频道栏目
首页 > 资讯 > Java > 正文

Java数据结构系列之——树(4):二叉树的中序遍历的递归与非递归实现

14-12-06        来源:[db:作者]  
收藏   我要投稿
package tree.binarytree;

import java.util.Stack;

/**
 * 二叉树的中序遍历:递归与非递归实现
 * 
 * @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 stack = new Stack();// 栈,用于存放二叉树的结点
		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;
			}
		}
	}
}

相关TAG标签
上一篇:1.Cocos2d-x-3.2编写3d打飞机,粒子管理器代码
下一篇:C++ Primer 读书笔记2
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站