java基本树型结构实现
来源:互联网 发布:echart 数据加载不合并 编辑:程序博客网 时间:2024/06/07 02:02
最近复习数据结构,用java写一个树的模板,代码如下,写的比较仓促,如果有哪里写的不好,或者有错误,请在评论区提出,谢谢。
package Tree;import java.util.ArrayList;import java.util.List;/** * 树节点 * @author * * @param <T> */public class Node<T> { private T cont;//节点内容 private Node<T> parent;//父节点 public List<Node<T>> nodeList;//子节点列表 /** * 构造函数 * @param cont * @param parent * @param nodeList */ public Node(T cont) { super(); this.cont = cont; this.parent = null; this.nodeList = new ArrayList<Node<T>>(); } public Node() { super(); // TODO Auto-generated constructor stub } /** * get &set * @return */ public T getCont() { return cont; } public void setCont(T cont) { this.cont = cont; } public Node<T> getParent() { return parent; } public void setParent(Node<T> parent) { this.parent = parent; } public List<Node<T>> getNodeList() { return nodeList; } public void setNodeList(List<Node<T>> nodeList) { this.nodeList = nodeList; }}
——————————————-我是分割线—————————————
package Tree;/** * 树类 * @author * * @param <T> */public class Tree<T> { private Node<T> root; public Node<T> getRoot() { return root; } /** * 构造函数 * @param root */ public Tree(Node<T> root) { super(); // root.setParent(null); this.root = root; } public Tree(T rootCont) { super(); this.root = new Node(rootCont); } /** * 增加新节点 * @param curNode * @param newNode */ public void addNewNode(Node<T> curNode,Node<T> newNode){ if(newNode==null||curNode==null){ return ; } newNode.setParent(curNode); curNode.nodeList.add(newNode); } /** * 遍历 */ public void traversal(Node<T> root){ System.out.println("Traversal to"+root.getCont()); for(Node<T> tempNode:root.getNodeList() ){ traversal(tempNode); } } /** * 查找 * @param root * @param searchcont * @return */ private void searchHelp(Node<T> root,Node<T> result,T searchcont){ if(root.getCont()==searchcont){ result.setCont(root.getCont()); result.setNodeList(root.nodeList); result.setParent(root.getParent()); } for(Node<T> tempNode:root.getNodeList() ){ searchHelp(tempNode,result,searchcont); } } public Node<T> search(Node<T> root,T searchcont){ if(searchcont==null){return null;} Node<T> result=new Node<T>(); searchHelp(root,result,searchcont); //System.out.println("search completed"+result.getCont()); return result; }}
——————————————-我是分割线—————————————
package Tree;public class test { public static void main(String[] args) { // TODO Auto-generated method stub Tree<String> strTree=new Tree<String>(new Node<String>("系统管理")); strTree.addNewNode(strTree.search(strTree.getRoot(), "系统管理"), new Node<String>("部门管理")); strTree.addNewNode(strTree.search(strTree.getRoot(), "系统管理"), new Node<String>("岗位管理")); strTree.addNewNode(strTree.search(strTree.getRoot(), "系统管理"), new Node<String>("用户管理")); strTree.addNewNode(strTree.search(strTree.getRoot(), "岗位管理"), new Node<String>("岗位添加")); strTree.addNewNode(strTree.search(strTree.getRoot(), "岗位管理"), new Node<String>("岗位删除")); strTree.addNewNode(strTree.search(strTree.getRoot(), "用户管理"), new Node<String>("用户添加")); strTree.addNewNode(strTree.search(strTree.getRoot(), "用户管理"), new Node<String>("用户修改")); strTree.traversal(strTree.getRoot());//遍历结果 }}
0 0
- java基本树型结构实现
- 二叉树的基本结构以及java实现
- java 实现二叉树结构的基本运算详细代码
- java实现树型结构方法一
- 用java实现单链表结构与基本数据操作
- java实现双链表结构与基本数据操作
- Java基本编程结构
- Java基本程序设计结构
- 【Java】程序基本结构
- JAVA基本结构程序
- Java虚拟机基本结构
- Java 虚拟机基本结构
- 树结构实现java+js
- JAVA实现二叉树结构
- Java 实现树结构
- java 实现简单树结构
- 结构体数组基本实现
- Java程序设计的基本结构
- vim 配置文件加载顺序笔记
- Vs2017基于linux的C++开发
- jsp常见错误及解决方法
- POJ 2686 (状态转移dp)
- 去掉Bosch 物联网开发平台 XDK类eclipse 的控制台数据最大行数限制
- java基本树型结构实现
- Vue 2.0初学后个人总结及分享
- 剑指offer-数字在排序数组中出现的次数
- Android Activity学习笔记(一)
- Java中的垃圾回收
- linux脚本安装包
- EMACScript6之-----------------------类calss//modal
- mybatis简介
- 几种垃圾回收器的原理