|
网站首页
|
模板
|
资料
|
源码
|
工具
|
开发
|
设计
|
安全
|
项目
|
网络
|
图片
|
系统
|
数据库
|
博客
|
会员中心
|
小说
|
网络学院
学习资料
源码模版
您现在的位置:
精品下载
>>
开发
>>
网站开发
>>
asp
>> 文章正文
用户登录
新用户注册
无限级目录树最优算法的新研究
【字体:
小
大
】
无限级目录树最优算法的新研究
作者:佚名 文章来源:不详 点击数: 更新时间:2007-10-7
(首先声明:因为看到许多人对本文的热心关注,作者对本文稍作修改和补充)
本文具体介绍: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的长
度。最后,我为什么用“最优”,主要有激将之意,抛砖引玉,只是希望能引起
广大高手的注意,能提出个人独特建议,在交流上作广泛的讨论。作者本人也绝
没有夜郎自大的意思。
文章录入:chqnet 责任编辑:chqnet
上一篇文章:
我在开发过程总结的一套实现常用功能的函数
下一篇文章:
输出EXCEL文件的通用函数,很实用
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
仅用css编写无限分级弹出菜单
仅用css编写无限分级弹出菜单
使用hibernate实现树形结构无
一棵php的类树(支持无限分类
无限分类&树型论坛的实现
一个无限分类的处理类
使用无限生命期Session的方法
使用无限生命期Session的方法
无限级别菜单的实现(其实还
理论上实现真正意义的无限级
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
在线技术支持:QQ:9296258 MYFTP资料来自网络,免费提供给网民学习。如本站侵犯了您的版权,请与我们联系。
MYFTP 版权所有 Copyright© 2004-2008 站长:
chengq