package suanFa;
import java.util.LinkedList;
public class BinaryTree {
//根节点
private Node<Integer> root;
//二叉树中节点数量
private int size;
//无参构造器
public BinaryTree() {
root = new Node<Integer>();
}
//数组构造器
public BinaryTree(int[] values) {
System.out.print("新建binaryTree:");
for (int i : values) {
System.out.print(i);
}
System.out.println();
boolean isLeft = true;
int len = values.length;
if (len == 0)
return ;
LinkedList<Node<Integer>> queue = new LinkedList<Node<Integer>>();
root = new Node<Integer>(values[0]);
queue.addLast(root);
Node parent = null;
Node current = null;
for (int i=1; i<len; i++) {
current = new Node<Integer>(values[i]);
queue.addLast(current);
if (isLeft)
parent = queue.getFirst();
else
parent = queue.removeFirst();
if (isLeft) {
parent.setLeftChild(current);
isLeft = false;
}else {
parent.setRightChild(current);
isLeft = true;
}
}
}
//递归中序遍历
public void inorder() {
System.out.print("binaryTree递归中序遍历:");
inorderTraverseRecursion(root);
System.out.println();
}
//层次遍历