package test01.tree; public class Tree<T> { public TreeNode<T> root; public Tree(){} public void addNode(TreeNode<T> node, T newNode){ //增加根节点 if(null == node){ if(null == root){ root = new TreeNode(newNode); } }else{ TreeNode<T> temp = new TreeNode(newNode); node.nodelist.add(temp); } } /* 查找newNode这个节点 */ public TreeNode<T> search(TreeNode<T> input, T newNode){ TreeNode<T> temp = null; if(input.t.equals(newNode)){ return input; } for(int i = 0; i < input.nodelist.size(); i++){ temp = search(input.nodelist.get(i), newNode); if(null != temp){ break; } } return temp; } public TreeNode<T> getNode(T newNode){ return search(root, newNode); } public void showNode(TreeNode<T> node){ if(null != node){ //循环遍历node的节点 System.out.println(node.t.toString()); for(int i = 0; i < node.nodelist.size(); i++){ showNode(node.nodelist.get(i)); } } } }