Java实现简单树结构

作者:Java开发-搁浅 时间:2023-08-06 18:59:12 

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

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

叶子的代码:


package com.app;

import java.util.ArrayList;
import java.util.List;

public class treeNode<T> {
  public T t;
  private treeNode<T> parent;

public List<treeNode<T>> nodelist;

public treeNode(T stype){
    t   = stype;
    parent = null;
    nodelist = new ArrayList<treeNode<T>>();
  }

public treeNode<T> getParent() {
    return parent;
  }  
}

树的代码:


package com.app;

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));
      }      
    }
  }
}

测试的主函数:


package com.app;

public class app {

/**
   * @param args
*/
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    /*简单实现一个树的结构,后续完善解析xml       */
    /*写得满烂的,后续查阅一些其他代码        2012-3-12  */
    //测试
    /*
    * string
    *     hello
    *       sinny
    *       fredric
    *     world
    *      Hi
    *      York
    * */

tree<String> tree = new tree();
    tree.addNode(null, "string");
    tree.addNode(tree.getNode("string"), "hello");
    tree.addNode(tree.getNode("string"), "world");
    tree.addNode(tree.getNode("hello"), "sinny");
    tree.addNode(tree.getNode("hello"), "fredric");
    tree.addNode(tree.getNode("world"), "Hi");
    tree.addNode(tree.getNode("world"), "York");
    tree.showNode(tree.root);

System.out.println("end of the test");
  }

}
标签:java,树结构
0
投稿

猜你喜欢

  • Android开发者需要知道的8个项目管理技巧

    2022-04-11 19:51:02
  • Android 多国语言value文件夹命名的方法

    2022-04-19 00:43:40
  • JavaWeb中JavaMail创建邮件和发送邮件

    2022-01-29 02:54:09
  • springboot省去配置Tomcat的步骤问题

    2023-03-13 18:58:44
  • JAVA 内存溢出案例汇总

    2022-02-16 08:49:22
  • C# 实现FTP上传资料的示例

    2023-10-31 21:19:40
  • CentOS安装jdk的三种方法

    2022-01-13 06:24:41
  • Android编程开发之EditText中inputType属性小结

    2022-04-13 10:03:11
  • 一文搞懂SpringBoot如何利用@Async实现异步调用

    2022-02-06 12:39:27
  • java实现Base64加密解密算法

    2023-11-25 08:07:27
  • C#中的高阶函数介绍

    2022-12-05 02:41:46
  • java多线程模拟抢红包功能

    2023-07-25 01:09:58
  • 浅谈c++11线程的互斥量

    2023-02-14 18:00:44
  • C++ 实现球迷 今日头条面试题

    2022-07-08 11:03:24
  • Android中使用Toast.cancel()方法优化toast内容显示的解决方法

    2021-12-14 05:17:03
  • Java基于命令模式实现邮局发信功能详解

    2023-07-03 04:57:25
  • Java数组高级算法与Arrays类常见操作小结【排序、查找】

    2022-12-02 15:17:14
  • 手写java性能测试框架第二版

    2023-03-15 14:07:31
  • spring mvc4中相关注解的详细讲解教程

    2021-10-11 23:21:17
  • Android实现网络多线程断点续传下载功能

    2021-05-29 18:22:24
  • asp之家 软件编程 m.aspxhome.com