1.二叉树:
2.代码实现
2.1.二叉树(BinaryTree.java)
package com.lemon;
public class BinaryTree {
//头结点
private Node root;
//判断是否增加新结点
public void add(int data){
//如果头结点为空
if(root == null) {
root = new Node(data);
}else {
//头结点不为空 增加新结点
root.addNode(data);
}
}
//打印所有结点
public void print(){
root.printNode();
}
//结点 内部类
private class Node{
//存放数据
private int data;
//左结点
private Node left;
//右结点
private Node right;
public Node(int data) {
this.data = data;
}
//增加新结点
public void addNode(int data) {
//数据小于头结点 放在左边
if(data <= this.data) {
//判断左边结点是否为空 为空新增 不为空则递归
if(this.left == null) {
this.left = new Node(data);
}else {
this.left.addNode(data);
}
}else {
//数据大于头结点 放在右边
if(data > this.data) {
if(this.right == null) {
this.right = new Node(data);
}else {
this.right.addNode(data);
}
}
}
}
//中序遍历
public void printNode() {
if(this.left != null) {
this.left.printNode();
}
System.out.print(this.data + "->");
if(this.right != null) {
this.right.printNode();
}
}
}
}
2.2使用二叉树(Text.java):
package com.lemon;
public class Text {
public static void main(String[] args) {
BinaryTree bt = new BinaryTree();
// 2,6,3,10,7,9,1,23
bt.add(2);
bt.add(6);
bt.add(3);
bt.add(10);
bt.add(7);
bt.add(9);
bt.add(1);
bt.add(23);
bt.print();
}
}