[发明专利]基于树形数据结构节点的插入的方法和存储装置有效
申请号: | 200910132653.4 | 申请日: | 2009-03-30 |
公开(公告)号: | CN101515298A | 公开(公告)日: | 2009-08-26 |
发明(设计)人: | 杜文华;洪荣峰;易毅 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司 | 代理人: | 逯长明 |
地址: | 518129广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 树形 数据结构 节点 插入 方法 存储 装置 | ||
技术领域
本发明涉及存储技术领域,特别涉及基于树形数据结构节点的插入的方 法和存储装置。
背景技术
树形数据结构中的树由自然数个节点(Node)基于一定的关系结合构成。 在任意一棵非空的树中每个节点都具有用于唯一识别节点的关键码值。在二 叉树中上述关键码值一般会用键(Key)来表示。
二叉树是构成树的每个节点最多只能有两个子节点的一种树形数据结 构;在二叉树中任取一个节点作为父节点,为了区分当前节点的两个子节点, 两个子节点可以分别称为父节点的左子节点和右子节点,在二叉树中所有的 节点与其子节点基于的关系可以是:左子节点大于父节点,父节点大于右子 节点。
在二叉树中插入节点的方法可以是:将待插节点的关键码值与二叉树的 根节点的关键码值比较,若待插节点的关键码值小于根节点的关键码值,则 进入左子树,否则进入右子树。在左子树或右子树里再将待插节点的关键码 值与子树的根节点的关键码值比较,如此进行下去,直到把待插入点插入到 二叉树里作为一个新的叶子节点。如果上述二叉树的形状是固定的(有时也 称为树的高度固定),上述把待插入点插入到二叉树里作为一个新的叶子节点 可以理解为:将待插节点插入到了一个虚拟的位置,然后对已经存在的节点 和上述待插节点按照左子节点大于父节点,父节点大于右子节点的关系进行 搬移。
发明人在实现本发明的过程中发现:在形状固定的树里,插入新的节点 需要对已经存在的节点进行搬移,需要搬移的节点的数量会随着树的高度成 指数增长,从而导致节点的插入时间迅速增加;现有树形数据结构中节点插 入的速度慢。
发明内容
本发明实施例要解决的技术问题是提供基于树形数据结构节点的插入的 方法和存储装置,提高节点插入的速度。
为解决上述技术问题,本发明所提供的基于树形数据结构节点的插入方 法实施例可以通过以下技术方案实现:
根据待插节点的关键码值在主树中查找最近主树节点,所述最近主树节 点的关键码值小于且最接近待插节点的关键码值;所述主树的根节点初始化 为具有最小的关键码值;其中,所述主树包括父节点、所述父节点的左子节 点和所述父节点的右子节点,且所述左子节点大于所述父节点,所述父节点 大于所述右子节点;
以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是 否已满,
若是,则在当前从树中任意选择一个节点作为拆分节点,将拆分节点插 入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主 树节点的外部指针指向新建从树,将当前从树中位于拆分节点左侧的全部节 点搬移到新建从树中,然后执行查找最近主树节点,
若否,则将待插节点插入到当前从树中。
本发明实施例还提供了另一种基于树形数据结构节点的插入方法,包括:
根据待插节点的关键码值在主树中查找最近主树节点,所述最近主树节 点的关键码值大于且最接近待插节点的关键码值;所述主树的根节点初始化 为具有最大的关键码值;所述主树中的左子节点大于父节点,父节点大于右 子节点;
以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是 否已满,
若是,则在当前从树中任意选择一个节点作为拆分节点,将拆分节点插 入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主 树节点的外部指针指向新建从树,将当前从树中位于拆分节点右侧的全部节 点搬移到新建从树中,然后执行查找最近主树节点;
若否,则将待插节点插入到当前从树中。
本发明实施例还提供了一种存储装置,包括:
从树存储单元,用于存储从树;
主树存储单元,用于存储主树,主树中的节点具有指向从树的外部指针。
本发明实施例还提供了一种通信设备,包括:上述存储装置。
上述技术方案具有如下有益效果:将树形数据结构的树分成主树和从树 降低了树的高度,减少了节点插入的时间,提高了节点的插入速度。
附图说明
图1为本发明实施例中树形数据结构示意图;
图2为现有技术中的多叉树示意图;
图3为本发明实施例一节点插入的方法流程示意图;
图4为本发明实施例一查找最近主树节点的方法流程示意图;
图5为本发明实施例二节点查找的方法流程示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910132653.4/2.html,转载请声明来源钻瓜专利网。