无限级目录树最优算法的新研究

原创 2002年09月16日 09:12:00

首先声明:因为看到许多人对本文的热心关注,作者对本文稍作修改和补充)
本文具体介绍:1。目录树的数据结构
              2。探讨具体应用中数据库的查询复杂度。

表结构:  id(编号)pid(父节点)nodepath(路径)nodetype(状态)
 
示例数据:1         0             0>               F
          2         0             0>               D
          3         2             0>2>             D
          4         3             0>2>3>           F
测试项目:                                                   
1。获取当前节点的父节点:复杂度:O(n)
2。获取当前节点的下级子节点: 复杂度:O(n)
3。获取当前节点的所有子孙节点: 复杂度:O(n)
4。获取当前节点的所有直系祖宗节点: 复杂度:O(n)
5。删除、新增节点时比较容易实现,主要是实现节点转移有点麻烦:设被转移

的节点为S,转移到的目的节点为T,则S.nodepath=T.nodepath+T.id+'>';同时检

查S是否有兄弟节点,无则S的父节点的nodetype改为F;检查T的nodetype,如为F

则改为D;修改表中S的子孙节点nodepath。一般这种情况出现的几率很低。
说明:本人的初衷是将该结构主要应用在类资源管理器的目录树中,根据

nodetype,画树的时候不必再搜索数据库去判断该节点是否还有子节点。至于用

在bbs帖子树,像帖子树中有一个帖子最新的,就必须将整个帖子树置顶这样的

情况,有种实用解决办法:增加一个字段rootid(帖子的根帖):select distanct

rootid from table order by postdate。
本数据结构支持无限级树,关于树的深度,可以根据实际情况而定nodepath的长

度。最后,我为什么用“最优”,主要有激将之意,抛砖引玉,只是希望能引起

广大高手的注意,能提出个人独特建议,在交流上作广泛的讨论。作者本人也绝

没有夜郎自大的意思。

 

十个值得研究的C开源项目!

原文链接:http://my.oschina.net/zhoukuo/blog/335788?p=9#comments 算是比较轻量级的开源项目,作为学习研究C语言,提升C语言功底!好处很多很多! ...
  • coding__madman
  • coding__madman
  • 2016年04月22日 09:30
  • 1536

预排序遍历树算法(非递归无限极分类算法)

本文是我学习MySQL官方教程Managing Hierarchical Data in MySQL的笔记 多层数据结构估计所有的web开发者估计都不会陌生,各种软件的分类都是基于多层结构来设计...
  • daniel7443
  • daniel7443
  • 2016年11月29日 17:14
  • 1125

基于大数据的推荐算法研究(1)

孙远帅. 基于大数据的推荐算法研究[D]. 厦门大学, 2014. 读的一篇论文的总结总览基于项目层次结构的推荐算法,并结合Hadoop技术实现矩阵分解算法。 改进均衡相似度的余弦距离和皮尔逊相关系...
  • yimiaomochu
  • yimiaomochu
  • 2017年03月14日 10:20
  • 1402

dTree无限级目录树和JQuery同步ajax请求

以前都是用JQuery对树的支持来实现目录树的,近来闲来无事就弄了下dTree,感觉其无限级目录还是挺好的,而且它的使用也比较方便,基本上就是先把要用的js文件即dtree.js和css文件dtree...
  • zylzb
  • zylzb
  • 2014年10月27日 17:26
  • 957

dTree无限级目录树和JQuery同步Ajax请求

以前都是用JQuery对树的支持来实现目录树的,近来闲来无事就弄了下dTree,感觉其无限级目录还是挺好的,而且它的使用也比较方便,基本上就是先把要用的js文件即dtree.js和css文件dtree...
  • elim168
  • elim168
  • 2014年10月29日 14:35
  • 9609

无限级目录树数据结构前端实现

无限级目录树数据结构的前端实现
  • qq_22555107
  • qq_22555107
  • 2017年11月14日 13:40
  • 268

打造DropDownList,TreeView,ListBox无限极分类目录树

#region DropDownList无限递归显示层次关系 /// /// 创建无限分级下拉列表框 /// /// 下拉...
  • smartsmile2012
  • smartsmile2012
  • 2012年09月20日 08:57
  • 3885

SqlServer与Linq 无限递归目录树且输出层级

ALTER VIEW [dbo].[view_TreeLevel] AS WITH cte AS ( SELECT a.ModuleID , a.Module_Name , ...
  • smartsmile2012
  • smartsmile2012
  • 2016年12月22日 19:50
  • 1118

最优二叉搜索树的动态规划算法研究

  • 2014年01月14日 15:20
  • 228KB
  • 下载

Java递归算法实现目录树的遍历

具体请看代码实现,挺简单的。 package com.bz.a; import java.io.File; /** * 递归算法实现目录树的遍历 */ public class Recursi...
  • qq_34489300
  • qq_34489300
  • 2017年01月03日 16:17
  • 585
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:无限级目录树最优算法的新研究
举报原因:
原因补充:

(最多只允许输入30个字)