二叉树: package ky.tree; /* * d_c * 11/6/7 * *实现所谓的二叉树吧,进行了所谓的排序操作。 *这种实现很劣质吧,可能。 *传说有用链表实现的,有用数组实现的,会继续研究。 *基础薄弱,要工作了才开始学习数据结构。 *继续我的博客生涯,直到我放弃吧。 *还是一句话,每天一点进步,哪怕很小的进步,也要去争取! */ public class TreeNode { int mind; TreeNode left,right,root,current; public TreeNode() { super(); } public TreeNode(int mind) { super(); this.mind = mind; } public TreeNode(int mind, TreeNode left, TreeNode right) { super(); this.mind = mind; this.left = left; this.right = right; } public int getMind() { return mind; } public void setMind(int mind) { this.mind = mind; } public TreeNode getLeft() { return left; } public void setLeft(TreeNode left) { this.left = left; } public TreeNode getRight() { return right; } public void setRight(TreeNode right) { this.right = right; } //向树插入数据 public void insert(TreeNode treeNode){ //成为根节点 if(root==null){ root = treeNode; current = root; System.out.println("mid |"+treeNode.getMind()); } else //go left if(current.mind<treeNode.getMind()){ if(current.left==null){ current.left = treeNode; System.out.println("left /"+treeNode.getMind()); } else{ current = current.left; insert(treeNode); } } //go light else{ if(current.right==null){ current.right = treeNode; System.out.println("light //"+treeNode.getMind()); } else{ current = current.right; insert(treeNode); } } //没插入成功一次就必须将current返回到根节点 current = root; } } 主程序: package ky.tree; public class TreeNodeClient { public static void main(String[] args) { TreeNode tn0 = new TreeNode(6); TreeNode tn1 = new TreeNode(2); TreeNode tn2 = new TreeNode(8); TreeNode tn3 = new TreeNode(7); TreeNode tn4 = new TreeNode(1); TreeNode tn5 = new TreeNode(10); TreeNode tn6 = new TreeNode(9); tn0.insert(tn0); tn0.insert(tn1); tn0.insert(tn2); tn0.insert(tn3); tn0.insert(tn4); tn0.insert(tn5); tn0.insert(tn6); } }