package JavaProject;
import java.util.*;
public class TestBinaryTree {
public static void main(String[] args) {
BinaryTree <Integer>BiTree = new BinaryTree<Integer>();
BiTree.insert(2);
BiTree.insert(4);
BiTree.insert(12);
BiTree.insert(45);
BiTree.insert(21);
BiTree.insert(6);
BiTree.insert(111);
System.out.printf("二叉树的前序遍历为:");
BiTree.preOrder(BiTree.root);
System.out.printf("\n二叉树的中序遍历为:");
BiTree.inOrder(BiTree.root);
System.out.printf("\n二叉树的后序遍历为:");
BiTree.postOrder(BiTree.root);
}
}
class BinaryTree<T>{
Queue<Node>q = new LinkedList<Node>();
class Node{
public T data;
public Node left;
public Node right;
public Node(T data){
this.data = data;
this.left = null;
this.right = null;
}
}
int ans;
public Node root;
public BinaryTree(){
root = null;
}
public void insert(T element){
if(root == null){
root = new Node(element);
}
else{
q.clear();
q.add(root);
while(!q.isEmpty()){
Node temp = q.peek();
q.remove();
if(temp.left == null){
temp.left = new Node(element);
break;
}
else if(temp.right == null){
temp.right = new Node(element);
break;
}
q.add(temp.left);
q.add(temp.right);
}
}
}
public void preOrder(Node node){
if(node != null){
System.out.print(node.data + " ");
preOrder(node.left);
preOrder(node.right);
}
}
public void inOrder(Node node){
if(node != null){
inOrder(node.left);
System.out.print(node.data + " ");
inOrder(node.right);
}
}
public void postOrder(Node node){
if(node != null){
postOrder(node.left);
postOrder(node.right);
System.out.print(node.data + " ");
}
}
}
Java数据结构之完全二叉树
最新推荐文章于 2022-11-01 16:12:13 发布