技术标签: JAVA定义一个树形的结构
Java自定义树形结构
Java自定义树形结构
为什么80%的码农都做不了架构师?>>>
树形结构
Java
package com.zyl.comm;
import java.util.ArrayList;
import java.util.List;
public class Node {
private List> children = new ArrayList<>();
private Node parent;
private T data;
public Node(T data) {
this.data = data;
}
public Node(Node parent, T data) {
this.parent = parent;
this.data = data;
}
public List> getChildren() {
return children;
}
public void setParent(Node parent) {
parent.addChild(this);
this.parent = parent;
}
public void addChild(T data) {
Node child = new Node(data);
child.setParent(this);
this.children.add(child);
}
public void addChild(Node child) {
child.setParent(this);
this.children.add(child);
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public boolean isRoot() {
return (this.parent == null);
}
public boolean isLeaf() {
return this.children.size() == 0;
}
public void removeParent() {
this.parent = null;
}
public int getDepth(){
if (parent == null){
return 0;
} else {
return parent.getDepth() + 1;
}
}
}
参考
Tree implementation in Java (root, parents and children)
转载于:https://my.oschina.net/fxtxz2/blog/2980954
Java自定义树形结构相关教程
java servlet笔记3
java servlet笔记3 Servlet 表单数据 ? 浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法。 GRT方法 ? GET 方法向页面请求发送已编码的用户信息。页面和已编码的信息中间用 ? 字符分隔 http://www.test.com/hello?key1=value1k
java servlet笔记2
java servlet笔记2 Servlet 生命周期 ? Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程: Servlet 通过调用 init () 方法进行初始化。 Servlet 调用 service() 方法来处理客户端的请求。 Servlet 通过调用 destroy() 方法终
JAVA中配置JDK环境
JAVA中配置JDK环境 为什么80%的码农都做不了架构师? 学习JAVA的人要知道,JDK安装后还需要配置,接下来要为大家分享一下如何在win7系统配置JDK环境!!! 工具/原料 JDK,有32位和64位的,根据个人电脑配置下载相关的版本 百度经验:jingyan.baidu.com 方法/
java Servlet笔记7
java Servlet笔记7 Servlet 编写过滤器 ? Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。 ? 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet。Servlet 过滤器也可以附加到 JavaServer Pages (JSP) 文件
Java - 【异常处理】try...catch...
Java - 【异常处理】try...catch... 常见异常 java.lang.NullPointerException java.lang.ArrayIndexOutOfBoundsException java.io.NotSerializableException java.io.InvalidClassException java.lang.CloneNotSupportedException 异常继承关系 异常处理基本
【LeetCode(Java) - 744】寻找比目标字母大的最小字母
【LeetCode(Java) - 744】寻找比目标字母大的最小字母 文章目录 1、题目描述 2、解题思路 3、解题代码 1、题目描述 2、解题思路 ??由于字符列表有序,且找出比目标字母大的最小字母,很明显采用二分查找。 ??区间呈左开右闭形式。 ??当中间字符小于等于目标
JAVA基础 面向对象(四) 代码块 static 抽象类 内部类
JAVA基础 面向对象(四) 代码块 static 抽象类 内部类 一、static 关键字引入 static关键字声明的属性和方法是类自己的,所有类实例化的对象,都共享这些static属性和方法。 static可用于修饰:属性、方法、代码块、内部类 1.1 static修饰属性 static修饰后
【JAVA】字母菱形
【JAVA】字母菱形 输入描述 输入一个大写字母与一个整数n,1=n=26; 输出描述 输出如下高度为2n-1的菱形; 注意:A的下一个字母是B,Z的下一个字母是A 样例输入 R 12 样例输出 思路 图形由字母和空格组成,而且是由上下两个三角形构成,用一个数组存放字母,用
解决错误:java.lang.NoClassDefFoundError: net/sf/jsqlparser/expression/Expression
swp文件代表了交换文件,用于保存临时数据,swp文件是隐藏文件,可以用la查看。以.开头的都是隐藏文件。非正常关闭vi/vim编辑器时会生成一个.swp文件关于swp文件使用vi/vim,经常可以看到swp这个文件,那这个文件是怎么产生的呢,当你打开一个文件,vi就会生成这么一个.(filename)swp文件 以备不测(不测下面讨论),如果你正常退出,那么这个这个swp文件将会自动删除 ...
个人简历 个人简历 个人资料 姓 名: 婚姻状况: 照片 出 生: 政治面貌:
以Eclipse为核心搭建JAVA WEB开发环境(三)-模板项目Archetype本篇介绍创建archetype,用于创建WEB项目的模板。1、创建一个Dynamic Web Project。自己设置好项目的build path。2、添加Maven配置。右键点击项目,选择Configure-->Convert to Maven Project输入Group Id和Articfact Id3...
Servlet-授课一、 Servlet1.1 Servlet概述Servlet是SUN公司提供的一套规范,名称就叫Servlet规范,它也是JavaEE规范之一。我们可以像学习Java基础一样,通过API来学习Servlet。这里需要注意的是,在我们之前JDK的API中是没有Servlet规范的相关内容,需要使用JavaEE的API。目前在Oracle官网中的最新版本是JavaEE8,该网址中介绍了JavaEE8的一些新特性。当然,我们可以通过访问官方API,学习和查阅里面的内容。打开官方API网
1.问题描述1.阿里云服务器,根据官网教程,IIS上安装SSL证书,输入https://XXX域名,结果谷歌浏览器出现如下错误,然而IE浏览器却能正常访问。2.我用Nginx发布,谷歌浏览器却可以访问,问题应该出在IIS。2.解决添加链接描述借助该文档成功解决!...
展开全部向量组的极大无关组满足2个条件:62616964757a686964616fe59b9ee7ad94313334313533661、自身线性无关。2、向量组中所有向量可由它线性表示。例题的解法:构造矩阵 (a1,a2,a3,a4),对它用行变换化成梯矩阵。非零行的首非零元所在的列对应的向量就是一个极大无关组。5 4 1 32 1 1 4-3 -2 -1 -11 3 -2 2化成了行简化梯矩...
RFID工具管理系统几大应用场景,RFID工具管理系统应用场景主要有哪些?RFID工具管理系统可以科学管理各种工具,使用RFID抗金属标签与工具绑定,可进行领取、归还、查找和维护工具等管理,提高借还工具效率,提高工具管理的准确性和高效性,落实责任人。RFID工具管理系统几大应用场景 RFID工具管理系统应用场景主要有: 一、铁路线路维护工具管理,铁路线路维护的工具种类多,规格相差大,使用场合分散,一直是管理的难点,在每个工具安装RFID电子标签后,可以在库房的门口安装RFID超高频读写
**第一章 程序的算法设计**一、题目要求运行最大公约数的常用算法,并进行程序的调试与测试,要求程序设计风格良好,并添加异常处理模块(如输入非法等)。二、算法构造程序的思路大致为:(1)利用随机函数rand()随机生成[1,100]的数;(3)用户根据提供的6种算法选择输入算法的序号即可执行该算法;(4)计算...
一、前言关于apache的commons-io源码包org.apache.commons.io.FilenameUtils文件名称操作工具类,进行操作系统判断isSystemWindows、文件名称标准化normalize处理、不同操作系统unix路径转换separatorsToUnix、通过文件名判断相当equals/equalsOnSystem/equalsNormalized/equalsN...
iOS开发内购详细版本说明 优雅地小男子 关注2017.02.23 11:08* 字数 877 阅读 8023评论 46喜欢 26一、最近公司很多的项目用到了内购,抽空整理下内购的详细内容吧。1、先从内购的iTunesConnect里配置说起吧,我们先进入苹果的iTunesConnect链接https://itunesconnect.appl
Problem Description设有一有向图,其顶点值为字符型并假设各值互不相等,采用邻接表表示法存储表示。设计一个算法,求该图中所有顶点的入度值(要求按顶点的存储顺序输出)。 Input有多组测试数据,每组数据的第一行表示图的顶点数n和图的边数e(0&lt;n&lt;30);第二行表示各顶点的值,按输入顺序进行存储;接下来有e行,每一行表示每条边所依附的顶点的存储下标i和j,两...