二叉树,添加,查找
public class Tree { TreeNode last = null; TreeNode root = null; public Tree(int value){ root = createNode(value); } //结构 static class TreeNode{ int data; TreeNode left; TreeNode right; } //查找结点 public boolean searchTreeNode(int key,TreeNode tree){ if(tree == null){ return false; } if(tree.data == key){ return true; }else if(tree.data > key){ last = tree; searchTreeNode(key,tree.left); }else if(tree.data < key){ last = tree; searchTreeNode(key,tree.right); } return false; } //添加节点 public void addTreeNode(int key){ if(!searchTreeNode(key,root)){ TreeNode tree = createNode(key); if(key < last.data){ last.left = tree; }else if(key>last.data){ last.right = tree; } } last = null; } //遍历 public void iterate(TreeNode node){ if(node ==null){ return; } System.out.println(node.data); iterate(node.left); iterate(node.right); } public TreeNode createNode(int key){ TreeNode tree = new TreeNode(); tree.data = key; return tree; } public void removeNode(int key){ } public static void main(String[] args){ Tree tree = new Tree(4); tree.addTreeNode(5); tree.addTreeNode(6); tree.addTreeNode(3); tree.addTreeNode(7); tree.addTreeNode(8); tree.addTreeNode(9); tree.iterate(tree.root); } }