package new03;
public class Demo1 {
/**
* @二叉树的基本知识
*/
public static void main(String[] args) {
BinaryTree biTree = new BinaryTree();
int[] data = {2,8,7,4,9,3,1,6,7,5};
biTree.bulidTree(data);
System.out.println("中序遍历:");
biTree.inOrder();
System.out.println("\n前序遍历:");
biTree.preOrder();
System.out.println("\n后序遍历:");
biTree.postOrder();
}
}
class Node{
public int data;
public Node left;
public Node right;
public Node(int data){
this.data = data;
this.left = null;
this.right = null;
}
}
class BinaryTree{
private Node root;
public BinaryTree(){
root = null;
}
public void insert(int data){
Node newNode = new Node(data);
if(root == null){
root = newNode;
}
else{
Node current = root;
Node parent;
while(true){
parent = current;
if(data<current.data){
current = current.left;
if(current==null){
parent.left = newNode;
return;
}
}
else{
current = current.right;
if(current==null){
parent.right = newNode;
return;
}
}
}
}
}
public void bulidTree(int[] data){
for(int i=0;i<data.length;i++){
insert(data[i]);
}
}
//中序遍历
public void inOrder(Node localRoot){
if(localRoot!=null){
inOrder(localRoot.left);
System.out.print(localRoot.data+" ");
inOrder(localRoot.right);
}
}
public void inOrder(){
this.inOrder(this.root);
}
//前序遍历
public void preOrder(Node localRoot){
if(localRoot!=null){
System.out.print(localRoot.data+" ");
preOrder(localRoot.left);
preOrder(localRoot.right);
}
}
public void preOrder(){
this.preOrder(this.root);
}
//后序遍历
public void postOrder(Node localRoot){
if(localRoot!=null){
postOrder(localRoot.left);
postOrder(localRoot.right);
System.out.print(localRoot.data+" ");
}
}
public void postOrder(){
postOrder(root);
}
}
public class Demo1 {
/**
* @二叉树的基本知识
*/
public static void main(String[] args) {
BinaryTree biTree = new BinaryTree();
int[] data = {2,8,7,4,9,3,1,6,7,5};
biTree.bulidTree(data);
System.out.println("中序遍历:");
biTree.inOrder();
System.out.println("\n前序遍历:");
biTree.preOrder();
System.out.println("\n后序遍历:");
biTree.postOrder();
}
}
class Node{
public int data;
public Node left;
public Node right;
public Node(int data){
this.data = data;
this.left = null;
this.right = null;
}
}
class BinaryTree{
private Node root;
public BinaryTree(){
root = null;
}
public void insert(int data){
Node newNode = new Node(data);
if(root == null){
root = newNode;
}
else{
Node current = root;
Node parent;
while(true){
parent = current;
if(data<current.data){
current = current.left;
if(current==null){
parent.left = newNode;
return;
}
}
else{
current = current.right;
if(current==null){
parent.right = newNode;
return;
}
}
}
}
}
public void bulidTree(int[] data){
for(int i=0;i<data.length;i++){
insert(data[i]);
}
}
//中序遍历
public void inOrder(Node localRoot){
if(localRoot!=null){
inOrder(localRoot.left);
System.out.print(localRoot.data+" ");
inOrder(localRoot.right);
}
}
public void inOrder(){
this.inOrder(this.root);
}
//前序遍历
public void preOrder(Node localRoot){
if(localRoot!=null){
System.out.print(localRoot.data+" ");
preOrder(localRoot.left);
preOrder(localRoot.right);
}
}
public void preOrder(){
this.preOrder(this.root);
}
//后序遍历
public void postOrder(Node localRoot){
if(localRoot!=null){
postOrder(localRoot.left);
postOrder(localRoot.right);
System.out.print(localRoot.data+" ");
}
}
public void postOrder(){
postOrder(root);
}
}