[发明专利]一种处理树型结构数据的方法及系统有效

专利信息
申请号: 200710007530.9 申请日: 2007-02-01
公开(公告)号: CN101236550A 公开(公告)日: 2008-08-06
发明(设计)人: 马云峰;毛怀源;杨争;陈波 申请(专利权)人: 阿里巴巴公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京集佳知识产权代理有限公司 代理人: 逯长明
地址: 英属开曼群岛大开曼*** 国省代码: 开曼群岛;KY
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 处理 结构 数据 方法 系统
【说明书】:

技术领域

发明涉及数据处理技术,特别是涉及一种处理树型结构数据的方法及系统。

背景技术

在计算机应用中,经常需要处理树型结构的数据,如公司内部组织结构、产品分类、论坛帖子、邮件列表等等。参照图1,是树型结构数据的示例图,例如有一个论坛系统需要把主帖及相应的跟帖按照树型的结构显示出来,通过帖子标题的缩进来体现帖子间的父子关系,为用户更清晰地展示出帖子间的关系。显示效果如图1所示,每条数据记录为树的一个结点,其中主帖为根结点,所有跟帖为子结点。

上例中,在数据库设计时,记录帖子信息的数据表至少包括以下字段:帖子ID(id),主帖ID(mainId),父帖ID(parentId),帖子标题(topic),帖子内容(content),如图2所示。其中,所述帖子ID为帖子创建时的序列号;跟帖的标题可能与主帖的标题相同,也可能不同。

目前,按照树型结构显示某个主帖及相应跟帖的方法是:先从数据库中读出mainId等于指定主帖ID的所有帖子(即所述主帖和它的所有跟帖),并按照读取顺序存入一个列表。由于帖子在数据库中的存储通常按照创建的先后顺序排列,所以列表中的帖子并不按照树型结构排列。因此,下一步是使用递归算法遍历所述帖子列表,并在页面上分层次显示帖子。下面给出了一段实现所述递归算法的示例代码,能够得到树型结构排列的帖子序列,按照图1所示效果输出显示。

void printPosts(List posts,long rootId,int level){

    for(int i=0;i<posts.size();i++){

        Post post=(Post)posts.get(i);

        if(post.parentId==rootId){

            print(post.topic,level);

            printPosts(posts,post.id,level+1);

        }

    }

}

但是,由于递归算法自身存在的计算性能问题,采用递归遍历的方法处理树型结构的数据时速度较慢,而且当层次较多的情况下尤其明显。例如一棵帖子树总共有M个帖子,分为N层,则用递归算法显示所述帖子数总共计算M*N次,当M*N数量巨大时,需要耗费很多计算时间,造成系统不能及时响应用户查看数据的需求。

发明内容

本发明所要解决的技术问题是提供一种处理树型结构数据的方法及系统,以解决采用递归遍历的方法处理显示树型结构的数据速度较慢的问题。

为解决上述技术问题,本发明提供了一种处理树型结构数据的方法,包括:

在结点数据中记录用于标识数据层次关联关系的信息;

读取同一棵树的所有结点数据;

根据所述数据层次关联关系,对结点数据进行排序后得到数据列表;

顺序扫描所述列表并输出。

其中,所述排序是对标识数据层次关联关系的信息所对应的ASCII编码值,按照ASCII编码表的排序规则进行排序。

其中,所述数据关联关系以数字/字母与非数字/字母字符的组合表示。

优选的,根据非数字/字母字符的个数,判断输出数据时需要缩进的空格数。

优选的,每棵树的根结点数据设置相同的数字/字母。

本发明还提供了一种处理树型结构数据的系统,包括:

排序因子构造单元,用于对应每个结点数据,构造标识数据层次关联关系的排序因子;

数据获取单元,用于读取同一棵树的所有结点数据;

排序单元,用于根据所述排序因子,对结点数据进行排序后得到数据列表;

输出单元,用于顺序扫描所述列表并输出。

其中,所述排序单元对排序因子对应的ASCII编码值,按照ASCII编码表的排序规则进行排序。

其中,所述排序因子以数字/字母与非数字/字母字符的组合表示。

优选的,所述输出单元根据非数字/字母字符的个数,判断输出数据时需要缩进的空格数。

优选的,所述排序因子构造单元对每棵树的根结点数据设置相同的数字/字母。

与现有技术相比,本发明具有以下优点:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴公司,未经阿里巴巴公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200710007530.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top