各位大神有没有好用且高效的树形结构?

king_wjb 2015-05-31 12:03:28
我所知道的常用的树形结构有以下几种:
1、用FParentNodeId来表示父子关系,而这种关系最大的弊病就是一旦要查找某个非根节点的所有子孙节点,就要逐层遍历数,效率很低。
2、用左右值编码的方式,即模拟树的遍历,给每个节点设置左右值,通过对左右值的查询可以快速的查询到任意级次的所有子孙节点,但是这也有一个非常大的问题,就是一旦业务数据频繁变动,每次可能就会大面积的更新节点的左右值,并发时要考虑数据的一致性,以及会有堵塞甚至死锁的风险。
3、使用长编码的方式,也就是说每层有一个编码,层之间使用分隔符分开,查询子孙节点时,可以使用 like '1001$1002%'的方式,这种缺点是层级不好确定,所以字段长度不好确定,而且过长的字段增加索引时也会影响效率。

我的需求是,一个节点下可能会有N个子节点,每个子节点下可能也会N多个子节点,层级不限,现在就想快速查找到每个节点的所有子孙节点,并且这个树形结构对应的业务数据会发生频繁的变动,譬如删除某个分支下的所有节点,增加节点,移动节点等。请问有没有更好用的树形结构?
...全文
350 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
king_wjb 2015-06-01
  • 打赏
  • 举报
回复
没有人对这块有研究啊?

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧