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