偶然翻到了去年三月份自己写的一份关于二叉树的三种遍历方式(准确的说,是6中,包含递归和非递归),好久不复习关于算法相关的知识,这些基础还都是在前年备战考研的过程中准备的。希望自己以后多多复习之前的只是,温故而知新,不要捡起芝麻丢了西瓜。
废话不多说,还是直接上代码:
1.Node节点类
package BinTreeTraverse;
/**
* <p>创建人:刘星 创建日期:2017-3-7 下午4:53:51</p>
* <p>功能描述:(node节点类)</p>
* @version V1.0
*/
public class Node {
Node leftChild;//节点的左孩子节点
Node rightChild;//节点的右孩子节点
int data;//节点存储的数据
Node(int newData) {
//构造函数,默认左右孩子都为空
leftChild = null;
rightChild = null;
data = newData;
}
}
2.遍历实现类
package BinTreeTraverse;
import java.util.LinkedList;
import java.util.List;
import java.util.Stack;
/**
* <p>创建人:刘星 创建日期:2017-3-7 下午4:51:37</p>
* <p>功能描述:(遍历二叉树实现类)</p>
* @version V1.0
*/
public class BinTreeTraverse {
private int[] array = { 1, 2, 3, 4, 5, 6, 7, 8,9};//由于节点存储数据类型为int,这里定义一个int的数组
private stat