關於二叉樹的原理,網上一大堆,我這裏就不寫了。
因爲最近在學習數據結構,但是在網上找了很久都沒有找到適合自己,所以自己就硬着頭皮寫了。
廢話不多話,大家都是衝着代碼來的,那就上代碼
public class BinaryTree {
private Node root;
class Node{
private int data;
private Node leftNode;
private Node rightNode;
public Node(int data){
this.data=data;
}
}
public void addNode(int data){
Node node=new Node(data);
if(root==null){
root=node;
}else{
Node current=root;//通過根節點遍歷
while(true){
if(data<current.data){//放入左節點
if(current.leftNode==null){
current.leftNode=node;
return ;
}
current=current.leftNode;
}else{//放入右節點中
if(current.rightNode==null){
current.rightNode=node;
return ;
}
current=current.rightNode;
}
}
}
}
public void preOrder(Node node){
System.out.print(node.data+" ");
if (node.leftNode!=null){
preOrder(node.leftNode);
}
if (node.rightNode!=null){
preOrder(node.rightNode);
}
}
public static void main(String[] args) {
BinaryTree tree=new BinaryTree();
tree.addNode(3);
tree.addNode(4);
tree.addNode(5);
tree.addNode(2);
tree.addNode(1);
tree.preOrder(tree.root);
}
}