个人打竞赛多用c/c++,之前除了用到大数时,几乎没用java写过算法和数据结构......记得当时刚刚学习java时,看到一段用java写的数据结构的代码,有些懵逼,传参啦,递归啦,和c++均有差异,就没着重去研究。学了近一年OO思想,正好最近也在巩固java,想起此事,顺手用java写个二叉搜索树吧,十分简单,不过只写了点插入和前序遍历,读者莫黑......下个阶段做算法题可以尝试着用java,用好java,万一明年蓝桥报的是java组,或许能拿国一呢,哈哈。
package pack1;
import java.util.*;
class TreeNode{
private int data;
private TreeNode left,right;
public TreeNode(int te){
this.data = te;
this.left = this.right =null;
}
public static TreeNode insert(TreeNode root,int te){
if(root == null){
root = new TreeNode(te);
}
else if(te < root.data){
root.left = TreeNode.insert(root.left, te);
}
else{
root.right = TreeNode.insert(root.right,te);
}
return root;
}
public void preOrder(){
System.out.print(this.data+" ");
if(this.left != null){
this.left.preOrder();
}
if(this.right != null){
this.right.preOrder();
}
}
}
public class Main1{
public static void main(String []args){
int n;
TreeNode root = null;
Scanner reader = new Scanner(System.in);
n= reader.nextInt();
for(int i = 0;i < n;i++){
int te = reader.nextInt();
root = TreeNode.insert(root,te);
}
if(root != null){
root.preOrder();
}
}
}