[发明专利]一种树形结构的处理方法和装置在审
申请号: | 201611170415.9 | 申请日: | 2016-12-16 |
公开(公告)号: | CN106599218A | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 黄秋萍 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京润泽恒知识产权代理有限公司11319 | 代理人: | 刘祥景 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 树形 结构 处理 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,特别是涉及一种树形结构的处理方法和装置。
背景技术
树形结构指的是数据元素之间存在着“一对多”的树形关系的数据结构。由于树形结构层次关系清楚,便于管理,因此在计算机网络领域得到广泛应用,目前很多应用中对数据元素的存储方式就是以树形数据结构进行存储,并以树形显示界面进行展示的,因为在树形显示界面中,各数据元素的逻辑关系一目了然,而且便于添加、删除等管理维护。
目前在展示树形结构的过程中,通常采用递归调用的方式遍历树形结构中的所有节点。参照图1,示出了现有的一种树形结构的示意图。首先,从根节点A开始遍历,并且保存根节点A的两个子节点B、C的值;然后,分别遍历节点B和C,得知B有D、E两个子节点,则保存D、E两个子节点的值;接下来,分别遍历节点D和E,直到遇到叶子节点,图1中D和E即为叶子节点;最后,再从叶子节点开始向上进行回溯,把节点D和E的值保存到节点B的孩子节点中,再把节点B和C的值保存到节点A的孩子节点中,最终可以得到一棵完整的树形结构的节点树。
可以看出,现有的采用递归调用的方式遍历树形结构,需要先从上向下遍历整个树,再从下向上进行回溯,才可以得完整的树形结构,当树形结构中的节点数目较多时,导致遍历的时间成本较高。此外,由于采用递归调用的方式,调用时的中间结果需要全部保存在栈中,当树形结构的层次较深时,有可能会出现内存溢出的情况,从而导致系统崩溃。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种树形结构的处理方法和装置。
依据本发明的一个方面,提供了一种树形结构的处理方法,包括:
获取树形结构中父节点和子节点之间的对应关系;
根据所述父节点和子节点之间的对应关系,通过预置数组记录所述树形结构中各节点的节点信息以及所述各节点对应的子树;
根据所述预置数组展现所述树形结构。
可选地,所述预置数组为二维数组,所述根据所述父节点和子节点之间的对应关系,通过预置数组记录所述树形结构中各节点的节点信息以及所述各节点对应的子树的步骤,包括:
通过所述二维数组中的第一维记录所述树形结构中各节点的节点信息;
根据所述父节点和子节点之间的对应关系,通过所述二维数组中的第二维记录所述各节点对应的子树。
可选地,所述根据所述父节点和子节点之间的对应关系,通过所述二维数组中的第二维记录所述各节点对应的子树的步骤,包括:
针对所述第一维中节点,依据所述父节点和子节点之间的对应关系,获取对应的子节点的存储地址,并通过所述二维数组中的第二维记录所获取的子节点的存储地址。
可选地,所述根据所述预置数组展现所述树形结构的步骤,包括:
接收针对所述树形结构的展现指令;所述展现指令中包括:指定节点;
根据所述预置数组,获取所述指定节点对应的节点信息,以及所述指定节点对应的子树;
根据所述指定节点对应的节点信息、以及所述指定节点对应的子树,展现以所述指定节点为根节点的子树的树形结构。
可选地,所述展现指令中还包括:指定深度;则所述展现以所述指定节点为根节点的子树的树形结构的步骤,包括:
依次展现以所述指定节点为根节点的子树的每一层节点,并且记录当前深度;
在所述当前深度与所述指定深度一致时,停止展现剩余的节点。
可选地,所述获取树形结构中父节点和子节点之间的对应关系的步骤,包括:
依次遍历预先存储的树形结构表中的数据记录,所述树形结构表用于存储树形结构中的父节点和子节点;
如果当前遍历的数据记录中的父节点和子节点均不为空,则获取所述数据记录中父节点和子节点之间的对应关系。
可选地,所述方法还包括:
接收针对所述树形结构中待更新节点的更新指令;
根据所述更新指令,对所述树形结构表中的所述待更新节点及其关联节点进行更新。
可选地,所述更新指令包括如下指令中的至少一种:增加指令、删除指令和修改指令。
根据本发明的另一方面,提供了一种树形结构的处理装置,包括:
获取模块,用于获取树形结构中父节点和子节点之间的对应关系;
记录模块,用于根据所述父节点和子节点之间的对应关系,通过预置数组记录所述树形结构中各节点的节点信息以及所述各节点对应的子树;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611170415.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:路况显示方法以及装置
- 下一篇:一种数字图书交互分享系统的实现方法