使用队列工具 进行二叉树层序创建
后再补充二叉树先序创建,和 二叉树后序非递归遍历
有问题的,或者有更好的实现方式,欢迎指正!!!
class TNode<E>; //结点信息
TNode<Character> createBiTree(char[] array); //层序创建二叉树
int GetHeight(TNode BT); //求树高
boolean isEmpty(TNode root); //二叉判空
void PreorderTraversal(TNode BT); //先序递归遍历
void InorderTraversal(TNode BT); //中序递归遍历
void PostorderTraversal(TNode BT); //后序递归遍历
//我们要借鉴递归的思想去理解程序,
//递归的优点大家都晓得:代码简洁
//递归缺点,递归层数较多时,空间占用大,性能太低
//所以 要善于将递归 改为非递归程序
void PreorderTraversalIteration(TNode BT); //先序二叉树非递归遍历
void InorderTraversalIteration(TNode BT); //中序二叉树非递归遍历
void LevelorderTraversalIteration(TNode BT);//层序非递归遍历
void PreorderPrintLeaves(TNode BT); //输出叶子结点
package tree;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.Stack;
public class BiTree {
public class TNode<E>{
E data;
TNode<E> leftNode;
TNode<E> rightNode;
public TNode(E data) {
this.data = data;
leftNode = null;
rightNode = null;
}
public TNode() {
leftNode = null;
rightNode = null