| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2578 人关注过本帖
标题:关于树形结构的使用问题
只看楼主 加入收藏
king_wjb
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-5-31
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
关于树形结构的使用问题
我所知道的常用的树形结构有以下几种:
1、用FParentNodeId来表示父子关系,而这种关系最大的弊病就是一旦要查找某个非根节点的所有子孙节点,就要逐层遍历数,效率很低。
2、用左右值编码的方式,即模拟树的遍历,给每个节点设置左右值,通过对左右值的查询可以快速的查询到任意级次的所有子孙节点,但是这也有一个非常大的问题,就是一旦业务数据频繁变动,每次可能就会大面积的更新节点的左右值,并发时要考虑数据的一致性,以及会有堵塞甚至死锁的风险。
3、使用长编码的方式,也就是说每层有一个编码,层之间使用分隔符分开,查询子孙节点时,可以使用 like '1001$1002%'的方式,这种缺点是层级不好确定,所以字段长度不好确定,而且过长的字段增加索引时也会影响效率。

我的需求是,一个节点下可能会有N个子节点,每个子节点下可能也会N多个子节点,层级不限,现在就想快速查找到每个节点的所有子孙节点,并且这个树形结构对应的业务数据会发生频繁的变动,譬如删除某个分支下的所有节点,增加节点,移动节点等。请问有没有更好用的树形结构?
搜索更多相关主题的帖子: 最大的 左右 
2015-05-31 00:22
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:20 
一个节点下可能会有N个子节点,每个子节点下可能也会N多个子节点,层级不限,现在就想快速查找到每个节点的所有子孙节点,并且这个树形结构对应的业务数据会发生频繁的变动,譬如删除某个分支下的所有节点,增加节点,移动节点等。
听起来像是图结构:
一个节点下可能会有N个子节点,每个子节点下可能也会N多个子节点。
稀疏矩阵的数据结构可能有你想要的特点要求。

剑栈风樯各苦辛,别时冰雪到时春
2015-05-31 07:38
king_wjb
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-5-31
收藏
得分:0 
回复 2楼 林月儿
这个好像跟稀疏矩阵关系不大吧
2015-05-31 22:55
快速回复:关于树形结构的使用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014787 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved