public class Test {
public static void main(String[] args) {
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
map.put(1, 0);
map.put(2, 0);
map.put(3, 1);
map.put(4, 1);
map.put(5, 2);
map.put(6, 4);
map.put(7, 4);
map.put(8, 7);
//得到某一节点下的所有子节点(如果有)
getIds(1, map);
System.out.println(listRet);
}
private static List<Integer> listRet = new ArrayList<Integer>();
public static void getIds(int id,Map<Integer,Integer> map){
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < map.size(); i++) {
int x = map.get((i+1));
if(x==id){
list.add((i+1));
}
}
if(list.size()!=0){
listRet.addAll(list);
System.out.println(id+"->"+list);
for (int i = 0; i < list.size(); i++) {
getIds(list.get(i), map);
}
}
}
}
数据库设计:
查询语句为:
SELECT * from tree WHERE
position REGEXP CONCAT((SELECT position from tree where name = 'fruit'),'[\w\W]*')
当然,你用like也可以
查询结果为:
如果要插入的话略有一点复杂,步骤为:
如当我要在id=36的banana边插入一个同级的,做法为:
1、先获得blue的position,为1-1-2
2、找到1-1-2[\w\W]*匹配的正则,获取最后一段,按降序排列,得到第一个的数字
3、将数字+1,并拼装1-1-2为最终结果
- 大小: 6.8 KB
- 大小: 10.4 KB
- 大小: 7.6 KB
- 大小: 4.8 KB
分享到:
相关推荐
C#文档:二叉树、父子关系树(BOM常见存储形式)递归遍历取数并用树形结构显示方法;包含dbHelpSql类。复制代码运行DBConfig窗体链接数据库,表结构见“表结构.SQL”文档。
本文实例讲述了js 递归json树实现根据子id查父id的方法。分享给大家供大家参考,具体如下: 最近做了一个类似用js实现思维导图的功能,作为思维导图,一定会有树状结构的数据产生,在操作里面的节点时会经常需要查找...
主要介绍了thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法,涉及thinkPHP数据库查询,数组遍历与字符串操作等技巧,需要的朋友可以参考下
开发项目的时候遇到需要在表单中选择参会人员,根据不同部门下选择不同的人,在element-ui中有树形控件能满足这种情况,后台封装数据记录一下。 封装格式: 返回数据格式: 接收数据的pojo类: 2018年4月12...
这种算法的数据库结构设计最为简单。category表中一个字段id,一个字段fid(父id)。这样可以根据WHERE id = fid来判断上一级内容,运用递归至最顶层。 分析:通过这种数据库设计出的无限级,可以说读取的时候相当费劲...
在计算机领域也常用到树形结构。例如编译程序中用树表示源程序语法结构,数据库系统中用树组织信息等等。 我们举一个大家都有理解的例子:一个学校下有不同的学院,每个学院下又有不同的专业,每个专业下又有不同的...
这样处理的弊端是:如果数据量大,子分类很多,达到4级以上,这方法处理极端占用数据库连接池 对性能影响很大。 如果用SQL下面的CTE递归处理的话,一次性就能把结果给查询出来,而且性能很不错 比用程序处理(数据量...
通常情况下,树在数据库中实现的时候采用的是树的双亲表示法,设一个编号字段id,和一个父亲编号字段parent_id,来实现树形结构。这种数据结构的特点是:操作简单,几乎不用维护,然而优点带来的问题是对树进行遍历的...
存储树形结构是一个很常见的问题,他有好几种解决方案。主要有两种方法:邻接列表模型和改进前序遍历树算法 在本文中,我们将探讨这两种保存层次数据的方法。我将举一个在线食品店树形图的例子。这个食品店通过类别...
(29) 用树形结构来表示实体之间联系的模型称为(B) A. 关系模型 B. 层次模型 C. 网状模型 D. 数据模型 (30) 关系数据库管理系统能实现的专门关系运算包括(B) A. 排序、索引、统计 B. 选择、投影、连接 C. 关联、更新...
(29) 用树形结构来表示实体之间联系的模型称为______。(B) A. 关系模型 B. 层次模型 C. 网状模型 D. 数据模型 (30) 关系数据库管理系统能实现的专门关系运算包括______。(B) A. 排序、索引、统计 B. 选择、投影、...
简单数据库.c 编程汉字问题.txt 编随机数.c 试题.C 递堆法.C ./单元加: erre2.c erre.c 数组完全单元.c 栈单元加.c ./字符: 单词倒转.c 反出字符.c 回文.c 字符串查找.c 字符编辑.c 字符编辑技术(插入...
简单数据库.txt 简单计算器.txt 简单逆阵.txt 线性顺序存储结构.txt 线索化二叉树.txt 绘制圆.txt 编随机数.txt 网络最短路径Dijkstra算法.txt 自我复制.txt 节点.txt 苹果分法.txt 螺旋数组1.txt 螺旋...
简单数据库.txt 简单计算器.txt 简单逆阵.txt 线性顺序存储结构.txt 线索化二叉树.txt 绘制圆.txt 编随机数.txt 网络最短路径Dijkstra算法.txt 自我复制.txt 节点.txt 苹果分法.txt 螺旋数组1.txt 螺旋...
算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。 (5)指令系统 所谓指令系统指的是一个计算机系统能执行的所有指令的集合。 (2)数据结构研究的3个方面 ① 数据集合中各数据元素之间所固有...
4.4 面试例题:左遍历,不使用递归60 4.5 面试例题:最低公共祖先63 第5章数组与字符串65 5.1 数组65 5.1.1 C / C++ 66 5.1.2 Java 67 5.1.3 Perl67 5.2 字符串68 5.2.1 C 68 5.2.2 C++ 68 5.2.3 Java 69...
4.4 面试例题:左遍历,不使用递归60 4.5 面试例题:最低公共祖先63 第5章数组与字符串65 5.1 数组65 5.1.1 C / C++ 66 5.1.2 Java 67 5.1.3 Perl67 5.2 字符串68 5.2.1 C 68 5.2.2 C++ 68 5.2.3 Java 69...
递归遍历矩阵 1个目标文件,简单! 多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第...
实例194 以树形显示的程序界面 259 实例195 动态按钮的窗体界面 260 第9章 窗体控制技术 262 9.1 窗体常用操作 263 实例196 以全屏方式显示程序窗体 263 实例197 通过子窗体刷新父窗体 264 实例198 拖动无边框窗体 ...