资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 编程开发 >
Advertisement
文章正文

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

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   
  • ASP分页函数 
  • 简单快捷实现ASP在线发邮件功能 
  • ASP生成柱型体,折线图,饼图源代码(3) 
  • asp中随机生成文件名的函数 
  • 在ASP中使用简单Java类 
  • asp:如何在Form域中Post大于100K字节的数据?我的方法如下: 
  • 无组件上传图片到数据库中,最完整解决方案 
  • ASP生成Word文档的又一方法 
  • asp中加密与解密对应的函数 
  • 动网论坛密码暴力破解程序代码 
  • 页面导航:

    正文内容:

    (首先声明:因为看到许多人对本文的热心关注,作者对本文稍作修改和补充)
    本文具体介绍: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的长

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

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

    没有夜郎自大的意思。

     


     

     
    热门推荐笔记本: 三星笔记本
    相关文章:
    webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
    ©2007 popbb.net All Rights Reserved