欢迎使用CSDN-markdown编辑器
2015-11-18 13:19
274 查看
**
最近一直在烦恼如何清晰的呈现父子关系表,终于利用哈希表实现,算法和数据结构的使用可能并不是太好。基本的思想是:
1,将父子关系表中的数据取出存入list;
2,定义node,tree结构,定义必要的行为;
3,将list[i]封装为node,然后存入Hashtable tree.nodes,key为nodeid,value为node得到nodes地图;但是现在光有地图还不行,有了地图还要有每个地图点的下属地图索引,这样才能一次找出所有的后代!
4,遍历nodes,由node.parent_id找到父node位置,然后将node.key存入父node的childrennodekeys。这样的到包含子nodes的nodes地图。
5,得到了地图之后就可以根据任意的node找到其所对应的后代。使用递归查询selectnodechildrentree(node f),遍历childrennodes,如果chlidrennode的子node不为零 递归调用selectnodechildrentree(node f)这样就达到了本人想要查询任意chidrentree的目的!
关系表中的父子关系表转化成树形列表
**最近一直在烦恼如何清晰的呈现父子关系表,终于利用哈希表实现,算法和数据结构的使用可能并不是太好。基本的思想是:
1,将父子关系表中的数据取出存入list;
2,定义node,tree结构,定义必要的行为;
3,将list[i]封装为node,然后存入Hashtable tree.nodes,key为nodeid,value为node得到nodes地图;但是现在光有地图还不行,有了地图还要有每个地图点的下属地图索引,这样才能一次找出所有的后代!
4,遍历nodes,由node.parent_id找到父node位置,然后将node.key存入父node的childrennodekeys。这样的到包含子nodes的nodes地图。
5,得到了地图之后就可以根据任意的node找到其所对应的后代。使用递归查询selectnodechildrentree(node f),遍历childrennodes,如果chlidrennode的子node不为零 递归调用selectnodechildrentree(node f)这样就达到了本人想要查询任意chidrentree的目的!
相关文章推荐
- angular指令中scope三个符号的说明
- 模版+数据分离渲染方式的设计与实现
- activeMq实战
- Java线程创建详解
- 经得起雷劈:关于double和int/long相互转换失去精度计算错误的问题
- oracle增加表空间的四种方法 - Oracle
- koala不支持中文的解决办法(问题出现在使用中文字体时报错)
- 第1章 ビッグデータとデータの活用
- 第1章 ビッグデータとデータの活用
- 传递一个父id返回所有子id的用法,可用于删除父级以下的所有子级
- Windows下error LNK2019: 无法解析的外部符号 __imp__select@20
- nginx配置拒绝直接访问js文件
- Window下memcached安装与测试步骤
- 多核计算与并发编程 语言篇
- 将一个数组中奇数放在数组前边,偶数放在数组后边
- Linux文件目录详解
- linux下redis的安装
- hdu 1106 排序
- 中文pppoe中文拨号的解决方案
- Linux防火墙设置