Java实现简单的树结构

学习Java的同学注意了!!! 
学习进程中遇到甚么问题或想获得学习资源的话,欢迎加入Java学习交换群,群号码:183993990  我们1起学Java!


简单的实现了1个树的结构,很不完善!后续参考1些其他代码的实现。

试图实现叶子存在可变的节点,能够用来解析xml文件

叶子的代码

复制代码

 1 package com.app;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 public class treeNode<T> {
 7     public T t;
 8     private treeNode<T> parent;
 9     
10     public List<treeNode<T>> nodelist;
11     
12     public treeNode(T stype){
13         t      = stype;
14         parent = null;
15         nodelist = new ArrayList<treeNode<T>>();
16     }
17 
18     public treeNode<T> getParent() {
19         return parent;
20     }    
21 }

复制代码

树的代码

复制代码

class tree<T> {
 4     
 5     public treeNode<T> root;
 6     
public tree(){}
 8         
 9     void addNode(treeNode<T> node,T newNode){
10         //增加根节点
11         if(null == node){
12             null == root){
13                 root = new treeNode(newNode);
14             }
15         }else{
16                 treeNode<T> temp = 17                 node.nodelist.add(temp);
18         }
19     }
20     
21     /*    查找newNode这个节点 */
22     public treeNode<T> search(treeNode<T> input,128); line-height:1.5!important">23     
24         treeNode<T> temp = 25         
26         if(input.t.equals(newNode)){
27             return input;
28         }
29         
30         for(int i = 0; i < input.nodelist.size(); i++){
31             
32             temp = search(input.nodelist.get(i),newNode);
33             
34             null != temp){
35                 break;
36             }    
37         }
38         
39         return temp;
40     }
41     
42     public treeNode<T> getNode(T newNode){
43         return search(root,128); line-height:1.5!important">44     }
45     
46     void showNode(treeNode<T> node){
47         null != node){
48             循环遍历node的节点49             System.out.println(node.t.toString());
50             
51             int i = 0; i < node.nodelist.size(); i++){
52                 showNode(node.nodelist.get(i));
53             }            
54         }
55     }
56 }

复制代码

测试的主函数

复制代码

class app {
 4 
/**     * @param args
 7 static void main(String[] args) {
 9          Todo Auto-generated method stub简单实现1个树的结构,后续完善解析xml             写得满烂的,后续查阅1些其他代码                2012⑶⑴2    12         测试13         14          * string
15          *         hello
16          *             sinny
17          *             fredric
18          *         world
19          *           Hi
20          *           York
21          * 22         
23         tree<String> tree = new tree();
24         tree.addNode(null,string);
25         tree.addNode(tree.getNode(string),hello);
26         tree.addNode(tree.getNode(string),world);
27         tree.addNode(tree.getNode(hello),sinny);
28         tree.addNode(tree.getNode(hello),fredric);
29         tree.addNode(tree.getNode(world),Hi);
30         tree.addNode(tree.getNode(world),York);
31         tree.showNode(tree.root);
32         
33         System.out.println(end of the test);
34     }
35 
36 }

复制代码

学习Java的同学注意了!!! 
学习进程中遇到甚么问题或想获得学习资源的话,欢迎加入Java学习交换群,群号码:183993990  我们1起学Java!

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...