CN101515298B - 基于树形数据结构节点的插入的方法和存储装置 - Google Patents
基于树形数据结构节点的插入的方法和存储装置 Download PDFInfo
- Publication number
- CN101515298B CN101515298B CN2009101326534A CN200910132653A CN101515298B CN 101515298 B CN101515298 B CN 101515298B CN 2009101326534 A CN2009101326534 A CN 2009101326534A CN 200910132653 A CN200910132653 A CN 200910132653A CN 101515298 B CN101515298 B CN 101515298B
- Authority
- CN
- China
- Prior art keywords
- node
- tree
- main
- main tree
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
Abstract
本发明实施例公开了一种基于树形数据结构节点的插入的方法和存储装置。根据待插节点的关键码值在主树中查找最近主树节点,所述最近主树节点的关键码值小于且最接近待插节点的关键码值;以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是否已满,若是,则在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点左侧的全部节点搬移到新建从树中,然后执行查找最近主树节点,若否,则将待插节点插入到当前从树中。将树形数据结构的树分成主树和从树降低了树的高度,减少了节点插入的时间。
Description
技术领域
本发明涉及存储技术领域,特别涉及基于树形数据结构节点的插入的方法和存储装置。
背景技术
树形数据结构中的树由自然数个节点(Node)基于一定的关系结合构成。在任意一棵非空的树中每个节点都具有用于唯一识别节点的关键码值。在二叉树中上述关键码值一般会用键(Key)来表示。
二叉树是构成树的每个节点最多只能有两个子节点的一种树形数据结构;在二叉树中任取一个节点作为父节点,为了区分当前节点的两个子节点,两个子节点可以分别称为父节点的左子节点和右子节点,在二叉树中所有的节点与其子节点基于的关系可以是:左子节点大于父节点,父节点大于右子节点。
在二叉树中插入节点的方法可以是:将待插节点的关键码值与二叉树的根节点的关键码值比较,若待插节点的关键码值小于根节点的关键码值,则进入左子树,否则进入右子树。在左子树或右子树里再将待插节点的关键码值与子树的根节点的关键码值比较,如此进行下去,直到把待插入点插入到二叉树里作为一个新的叶子节点。如果上述二叉树的形状是固定的(有时也称为树的高度固定),上述把待插入点插入到二叉树里作为一个新的叶子节点可以理解为:将待插节点插入到了一个虚拟的位置,然后对已经存在的节点和上述待插节点按照左子节点大于父节点,父节点大于右子节点的关系进行搬移。
发明人在实现本发明的过程中发现:在形状固定的树里,插入新的节点需要对已经存在的节点进行搬移,需要搬移的节点的数量会随着树的高度成指数增长,从而导致节点的插入时间迅速增加;现有树形数据结构中节点插入的速度慢。
发明内容
本发明实施例要解决的技术问题是提供基于树形数据结构节点的插入的方法和存储装置,提高节点插入的速度。
为解决上述技术问题,本发明所提供的基于树形数据结构节点的插入方法实施例可以通过以下技术方案实现:
根据待插节点的关键码值在主树中查找最近主树节点,所述最近主树节点的关键码值小于且最接近待插节点的关键码值;所述主树的根节点初始化为具有最小的关键码值;其中,所述主树包括父节点、所述父节点的左子节点和所述父节点的右子节点,且所述左子节点大于所述父节点,所述父节点大于所述右子节点;
以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是否已满,
若是,则在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点左侧的全部节点搬移到新建从树中,然后执行查找最近主树节点,
若否,则将待插节点插入到当前从树中。
本发明实施例还提供了另一种基于树形数据结构节点的插入方法,包括:
根据待插节点的关键码值在主树中查找最近主树节点,所述最近主树节点的关键码值大于且最接近待插节点的关键码值;所述主树的根节点初始化为具有最大的关键码值;所述主树中的左子节点大于父节点,父节点大于右子节点;
以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是否已满,
若是,则在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点右侧的全部节点搬移到新建从树中,然后执行查找最近主树节点;
若否,则将待插节点插入到当前从树中。
本发明实施例还提供了一种存储装置,包括:
从树存储单元,用于存储从树;
主树存储单元,用于存储主树,主树中的节点具有指向从树的外部指针。
本发明实施例还提供了一种通信设备,包括:上述存储装置。
上述技术方案具有如下有益效果:将树形数据结构的树分成主树和从树降低了树的高度,减少了节点插入的时间,提高了节点的插入速度。
附图说明
图1为本发明实施例中树形数据结构示意图;
图2为现有技术中的多叉树示意图;
图3为本发明实施例一节点插入的方法流程示意图;
图4为本发明实施例一查找最近主树节点的方法流程示意图;
图5为本发明实施例二节点查找的方法流程示意图;
图6为本发明实施例二查找最近主树节点的方法流程示意图;
图7为本发明实施例三删节点的方法流程示意图;
图8为本发明实施例四节点插入的方法流程示意图;
图9为本发明实施例四查找最近主树节点的方法流程示意图;
图10为本发明实施例五存储装置结构示意图;
图11为本发明实施例六插入装置的装置结构示意图;
图12为本发明实施例六的插入装置加入平衡单元后的结构示意图;
图13为本发明实施例七查找装置结构示意图;
图14为本发明实施例八删除装置结构示意图;
图15为本发明实施例九合并装置结构示意图;
图16为本发明实施例十插入装置结构示意图;
图17为本发明实施例十二应用环境的结构示意图;
图18为本发明实施例十二现场可编程门阵列和存储器的结构示意图;
图19为本发明实施例十二查找数据的方法流程示意图;
图20为本发明实施例十二更新数据的方法流程示意图;
图21为本发明实施例十二另一更新数据的方法流程示意图。
具体实施方式
本发明实施例要解决的技术问题是提供一种基于树形数据结构节点的插入的方法和存储装置,提高节点的插入的速度。
在对本发明实施例进行前对本发明实施例中,树形数据结构所使用的名称进行一个说明,以二叉树为例,如图1所示,其中,圆可以表示为节点,圆中的数字可以表示为节点的关键码值;可以看到深度为Branch 0、Branch 1、Branch 2的三层节点基于一定的关系(用实线示意)结合构成一棵树,称为主树;深度为Branch 3、Branch 4的两层节点基于一定的关系(用虚线示意)结合构成了7棵树,每颗树都可以称为从树;主树中的节点具有指向与本节点对应的从树的外部指针(用带箭头的线表示)。可以理解的是,上述主树的高度、从树的高度、主树中每个节点外部指针的数量、从树的数量都是可以根据需要存储的数据规模等条件来设定,图1不应理解为对本发明实施例的限定。另外,在后续实施例的说明中无特别说明,称节点大或小均指关键码值大或小;在本发明实施例中,主树和从树的高度设定后,数据的插入删除等操作不改变主树和从树能够具有的最大高度;
本发明实施例中的树形数据结构是有序树形数据结构,为方便说明在本发明实施例中将左定义为大的一侧,右定义为小的一侧,可以理解的是左和右是一个相对的概念,左和右仅表示大小关系不应理解为对本发明实施例的限定,可以从主树中看到根据这样的大小关系建立的树形结构中,任选一个节点其左侧的节点都大于该节点,右侧的节点都小于该节点;
另外对树形数据结构中的一些概念进行简单的介绍,如图1所示,以主树为例:
节点16在主树中没有上层节点,节点30在从树中没有上层节点,可以称节点16为主树的根节点,节点30为节点30所在从树的根节点;
与节点24有直接联系的上层节点(节点16)为节点24的父节点,节点24则为节点16的子节点,可以看到节点8也是节点16的子节点,为了区分节点24和节点8,可以称节点24为节点16的左子节点,节点8为节点16的右子节点;另外,具有父子关系的节点在逻辑上是相邻的,称为相邻节点;
可以看到:左子节点、右子节点还可以有自己的子节点,所有的子节点可以称为节点16的子孙;节点16的左子节点(节点24)和节点24的子孙,也是树形的结构,可以称为节点16的左子树,同理右子节点(节点8)和节点8的子孙,可以称为节点16的右子树;
节点28、节点20等节点在主树中没有子节点,可以称为主树的叶子节点。
如图2所示,为一棵多叉树,可以看到深度为Branch 0、Branch 1的两层节点基于一定的关系(用实线示意)构成多叉树,与二叉树类似,不同点在于多叉树中每个节点可以有多个子节点;在多叉树中取一个节点(节点16)作为当前节点,参考二叉树,可以将当前节点的子节点分为左子节点(虚线的左边)和右子节点(虚线右边);与二叉树不同的是:这时左子节点和右子节点都可以有多个,当前节点与其子节点的关系依然可以参考二叉树:左子节点大于当前节点,当前节点大于右子节点;另外,在多个左子节点和多个右子节点也可以按照一定的顺序进行排序,图2中从左到右排序依据从大到小的原则进行(图2中左子节点排序依次为节点32、节点31、节点29、节点27,右子节点排序依次为节点23、节点21、节点19、节点8),当然也可以从小到大排序。可以理解的是在多叉树节点的插入、查找、删除都是可以参考二叉树进行的,在本发明实施例的说明中均以二叉树为例,可以理解的是,二叉树不应理解为对本发明实施例的限定,本发明实施例中所述的树也可以是多叉树。
实施例一,如图3所示,本发明实施例提供了一种基于树形数据结构节点的插入方法,包括以下步骤:
步骤301:根据待插节点的关键码值在主树中查找最近主树节点,上述最近主树节点的关键码值小于且最接近于待插节点的关键码值;上述主树的根节点初始化为具有最小的关键码值;其中,上述主树包括父节点、上述父节点的左子节点和上述父节点的右子节点,且上述左子节点大于上述父节点,上述父节点大于上述右子节点
在一棵树中,插入的节点的关键码值会在一个数域内取值,上述最小关键码值可以是上述数域中最小的数,也可以是小于上述数域中的所有数的任意值;
上述查找最近主树节点的方法是:在主树中查找关键码值小于且最接近于待插节点的关键码值的节点;后续实施例中将给出一种查找最近主树节点的实现方式;
步骤302:以最近主树节点的外部指针指向的从树作为当前从树;
步骤303:判断当前从树是否已满,若是,则进入步骤304,若否则进入步骤305;
上述当前从树是否已满,可以是:上述当前从树的使用率是否达到设定的使用率,若是,则确定上述当前从树已满,若否,则确定上述当前从树未满;也可以是:上述当前从树是否已经没有空节点了,若是,则确定当前从树已满,若否,则确定当前从树未满。
步骤304:在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点左侧的全部节点搬移到新建从树中,然后进入步骤301;
步骤305:将待插节点插入到当前从树中。
本发明实施例所述的插入方法保证了从树的高度不会随着数据的插入过度增长,从而减少了后续节点插入的时间,提高了节点的插入速度。
具体地,如图4所示,本发明实施例给出了上述根据待插节点的关键码值在主树中查找最近主树节点,以最近主树节点的外部指针指向的从树作为当前从树的一种实现方式,以二叉树为例,包括:
读取主树根节点的外部指针,设置变量为上述主树根节点的外部指针,将上述根节点作为当前节点;
判断待插节点关键码值是否大于上述主树节点的关键码值,设置上述变量为上述主树节点的左子节点的外部指针,将上述左子节点作为当前节点,若否,将上述当前节点的右子节点作为当前节点;
判断当前节点是否为叶子节点,若是,以上述变量指向的从树作为当前从树。
上述实施方式,还还可以包括:
判断当前节点是否为空或无效,若是,以上述变量指向的从树作为当前从树。
具体还可以包括以下步骤:
步骤401:读取主树根节点的外部指针,设置变量为上述主树根节点的外部指针,将上述主树根节点作为当前主树节点;
假设上述变量用Pointer表示,则可以为:Pointer=主树根节点的外部指针;
步骤402:判断当前主树节点是否为空或无效,若是,进入步骤403,若否,进入步骤404;
步骤403:以上述变量指向的从树作为当前从树;
步骤404:判断待插节点关键码值是否大于上述当前主树节点的关键码值,若是,进入步骤405,若否,进入步骤406;
步骤405:设置上述变量为上述当前主树节点的左子节点的外部指针(可以表示为:Pointer=左子节点的外部指针),将上述左子节点作为当前主树节点,进入步骤407;
若这里的树为多叉树,那么上述设置上述变量为上述当前主树节点的左子节点的外部指针之前还包括:查找当前主树节点的左子节点中小于且最接近于待查节点的节点,然后设置上述变量为上述查找到的主树节点的左子节点。
步骤406:将上述当前主树节点的右子节点作为当前主树节点(此时Pointer没有改变),进入步骤407。
若这里的树为多叉树,那么上述将当前主树节点的右子节点作为当前主树节点之前还包括:查找上述当前主树节点的右子节点钟小于且最接近于待查节点的节点,然后将上述查找到的当前主树节点的右子节点作为当前主树节点。
步骤407:判断上述当前主树节点是否为上述当前主树节点所在的主树的叶子节点;若是,进入步骤403;若否,进入步骤402;
上述实施方式提供了根据待插节点的关键码值在主树中查找最近主树节点,以最近主树节点的外部指针指向的从树作为当前从树的一种实现方式,可以理解的是实现的方案还有很多,上述举例不应理解为实现方案的穷举,故上述实施方式不应理解为对本发明实施例的限定。
进一步地,还可以对主树进行平衡操作;经平衡操作后主树的有效节点在主树中具有最小的深度。
具体地,触发对主树进行平衡操作的条件可以是:在上述主树的某一深度的节点处于未满状态,且上述某一深度非上述主树的最下层时,执行对主树进行平衡操作;或
在最下层节点以上的各深度节点中,为空的数量达到设定值时,执行对主树进行平衡操作。
可以理解的是触发对主树进行平衡的条件还可以有很多,例如:还可以是在存储系统处于闲置状态时对主树进行平衡操作;故上述两种举例不应理解为对本发明实施例的限定。
上述实施方式通过对主树进行平衡操作可以降低主树的高度,从而进一步提高插入速度。
实施例二,如图5所示,本发明实施例还提供了一种基于树形数据结构节点的查找方法,可以包括以下步骤:
步骤501:根据待查节点的关键码值在主树中查找待查找节点;若主树中不存在上述待查节点,则查找最近主树节点;上述最近主树节点的关键码值小于且最接近待插节点的关键码值;
若主树中存在节点与待查节点具有相同的关键码值,这时就已经找到了待查找节点,查找流程可以结束;
步骤502:以上述最近主树节点的外部指针指向的从树作为当前从树;
步骤503:在上述当前从树中查找上述待查找节点。
上述查找的实现方式中,由于降低了树的高度,节点的查找速度也会快。
具体地,如图6所示,本发明实施例给出了上述根据待查节点的关键码值在主树中查找最近主树节点,以最近主树节点的外部指针指向的从树作为当前从树的一种实现方式,以二叉树为例,包括以下步骤:
步骤601:读取主树根节点的外部指针,设置变量为上述主树根节点的外部指针,将上述主树根节点作为当前主树节点;
假设上述变量用Pointer表示,则可以为:Pointer=主树根节点的外部指针;
步骤602:判断当前主树节点是否为空或无效,若是,进入步骤603,若否,进入步骤604;
步骤603:以当前变量指向的从树作为当前从树;
步骤604:判断待查节点关键码值是否大于上述当前主树节点的关键码值,若是,进入步骤605,若否,进入步骤606;
步骤605:设置上述变量为上述当前主树节点的左子节点的外部指针(可以表示为:Pointer=左子节点的外部指针),将上述左子节点作为当前主树节点,进入步骤607;
步骤606:将上述当前主树节点的右子节点作为当前主树节点(此时Pointer没有改变),进入步骤607。
步骤607:判断上述当前主树节点是否为上述当前主树节点所在的主树的叶子节点;若是,进入步骤603;若否,进入步骤602;
上述实施方式提供了根据待查节点的关键码值在主树中查找最近主树节点,以最近主树节点的外部指针指向的从树作为当前从树的一种实现方式,可以理解的是实现的方案还有很多,上述举例不应理解为实现方案的穷举,故上述实施方式不应理解为对本发明实施例的限定。
实施例三,如图7所示,本发明实施例还提供了一种基于树形数据结构节点的删除方法,可以包括以下步骤:
步骤701:根据待删节点的关键码值在主树中查找待删节点,若主树中不存在上述待删节点,则查找最近主树节点;上述最近主树节点的关键码值小于且最接近待删节点的关键码值;
若主树中存在节点与待删节点具有相同的关键码值,这时就已经找到了待删节点,可以直接进入步骤704;
步骤702:以最近主树节点的外部指针指向的从树作为当前从树;
步骤703:在上述当前从树中查找上述待删节点;
步骤704:删除上述查找到的待删节点。
可以看到,本实施例的实现方法可以在实施例二的基础上进行,首先查找待删节点,然后删除待删节点。若删除的节点为主树节点时,可以对主树节点指向的从树节点和下层节点进行重新排序,排序的过程可以是将这些节点重新插入;若删除的节点为从树的节点,则可以对该从树的节点进行排序。
上述实施例中,由于树的高度降低了,能够更快地查找到待删节点,从而加快了删除节点的速度。
进一步地,树中的节点被删除后会出现一些未满的树,还可以进行树的合并操作,具体可以为:
主树中的第一正整数个相邻的节点指向的从树中的有效节点数,小于第二正整数个从树能够容纳的节点数时(上述第一正整数大于第二正整数):
将上述主树中的第一正整数个相邻节点,及上述第一正整数个节点分别指向的从树,合并为:第二正整数个主树节点,以及与上述第二正整数个主树节点指向的从树。
举例说明,假设上述第一正整数为2,上述第二正整数为1则:
当主树中两个相邻的节点指向的从树中的有效节点数,小于一个从树能够容纳的节点数时;
将上述主树中,两个相邻节点中较大的主树节点,及其指向的从树中的有效节点,插入上述两个相邻节点中较小的主树节点指向的从树中。
可以理解的是,上述对树的合并过程是可以为:将需要合并的主树节点,以及上述主树节点指向的从树的有效节点,再次插入本发明实施例的树形数据结构中的过程。另外触发进行树的合并的条件可以有很多种,例如还可以是在存储系统处于闲置状态时进行,可以理解的是上述触发进行树的合并的条件的举例不应理解为对本发明实施例的限定。
上述实施例中通过合并处于未满状态的从树可以释放出一些存储资源,可以提高存储空间的利用率。
实施例四,如图8所示,本发明实施例还提供了另一种树形数据结构节点插入的方法,可以包括以下步骤:
步骤801:根据待插节点的关键码值在主树中查找最近的主树节点,上述最近的主树节点的关键码值大于且最接近于待插节点的关键码值;上述主树的根节点初始化为具有最大的关键码值;其中,上述主树包括父节点、上述父节点的左子节点和上述父节点的右子节点,且上述左子节点大于上述父节点,上述父节点大于上述右子节点
在一棵树中,插入的节点的关键码值会在一个数域内取值,上述最大关键码值可以是上述数域中最大的数,也可以是大于上述数域中的所有数的任意值;
步骤802:以最近主树节点的外部指针指向的从树作为当前从树;
步骤803:判断当前从树是否已满,若是,则进入步骤804,若否,则进入步骤805;
步骤804:在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点右侧的全部节点搬移到新建从树中,然后进入步骤801;
步骤805:将待插节点插入到当前从树中。
上述实施例中,将树形数据结构的树分成主树和从树降低了树的高度,减少了数据插入的时间,提高了节点的插入速度。
具体地,如图9所示,本发明实施例给出了上述根据待插节点的关键码值在主树中查找最近主树节点,以最近主树节点的外部指针指向的从树作为当前从树的一种实现方式,以二叉树为例,包括以下步骤:
步骤901:读取主树根节点的外部指针,设置变量为上述主树根节点的外部指针,将上述根节点作为当前节点;
假设上述变量用Pointer表示,则可以为:Pointer=根节点的外部指针;
步骤902:判断当前节点是否为空或无效,若是,进入步骤903,若否,进入步骤904;
步骤903:以上述变量指向的从树作为当前从树;
步骤904:判断待插节点关键码值是否大于上述主树节点的关键码值,若是,进入步骤906,若否,进入步骤905;
步骤905:设置上述变量为上述主树节点的右子节点的外部指针(可以表示为:Pointer=左子节点的外部指针),将上述右子节点作为当前节点,进入步骤907;
步骤906:将上述当前节点的左子节点作为当前节点(此时Pointer没有改变),进入步骤907。
步骤907:判断上述当前节点是否为上述主树的叶子节点;若是,进入步骤903;若否,进入步骤902;
上述实施方式提供了根据待插节点的关键码值在主树中查找最近主树节点,以最近主树节点的外部指针指向的从树作为当前从树的一种实现方式,可以理解的是实现的方案还有很多,上述举例不应理解为实现方案的穷举,故上述实施方式不应理解为对本发明实施例的限定。
上述实施例四与实施一的方案具有的实现思想相同,区别点在于:本实施例中主树的根节点的关键码值在进行初始化时设置为最大值。节点的查找和删除的方法与实施例一和实施例二相同,首先在主树中查找待查/删节点,失败后,查找最近主树节点,然后在最近主树节点的外部指针指向的从树中查找到待查/删节点,然后删除待删节点。在此不再赘述。另,如果最近主树节点的外部指针指向了多棵从树,可以参考多叉树的插入、查找和删除的方法。
实施例五,如图10所示,本发明实施例还提供了一种存储装置,包括:
从树存储单元1001,用于存储从树;
主树存储单元1002,用于存储主树,主树中的节点具有指向从树的外部指针;上述主树的根节点初始化为具有最小的关键码值,上述主树中的左子节点大于父节点,父节点大于右子节点。
可选地,上述从树存储单元和上述主树存储单元均为:随机存取存储器。当然采用其它类型的存储器来存储主树或从树也是可以的,本发明实施例对此不作限定。
实施例六,如图11所示,本发明实施例还提供了一种插入装置1100,上述插入装置包括:
查找单元1101,用于根据待插节点的关键码值在主树中查找最近主树节点,在搬移单元1103将当前从树中位于拆分节点右侧的全部节点搬移到新建从树中后执行查找最近主树节点,上述最近主树节点的关键码值小于且最接近待插节点的关键码值;上述主树的根节点初始化为具有最小的关键码值;上述主树中的左子节点大于父节点,父节点大于右子节点;
判断单元1102,用于以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是否已满;
搬移单元1103,用于在当前从树已满时,在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点左侧的全部节点搬移到新建从树中;
插入单元1104,用于在当前从树未满时,将待插节点插入到当前从树中。
如图12所示,上述插入装置还可以包括:
平衡单元1201,用于对主树进行平衡处理。经平衡操作后主树的有效节点在主树中具有最小的深度。
实施例七,如图13所示,本发明实施例还提供了一种查找装置1300,包括:第一查找单元1301,用于根据待查节点的关键码值在主树中查找待查节点,若主树中不存在上述待查节点,则查找最近主树节点;上述最近主树节点的关键码值小于且最接近待插节点的关键码值;若主树中存在上述待查节点,则在主树中已经查找到需要查找的节点,查找流程结束;
待查节点查找单元1302,用于以上述最近主树节点的外部指针指向的从树作为当前从树;在上述当前从树中查找上述待查找节点。
上述查找装置可以为:现场可编程门阵列或专用集成电路;当然采用其它类型的物理实体来实现上述查找装置1300的功能也是可以的,对此本发明实施例不作限定。
实施例八,如图14所示,本发明实施例还提供了一种删除装置1400包括:
第二查找单元1401,用于根据待删节点的关键码值在主树中查找待删节点,若主树中不存在上述待删节点,则查找最近主树节点;上述最近主树节点的关键码值小于且最接近待删节点的关键码值;
待删节点查找单元1402,用于以最近主树节点的外部指针指向的从树作为当前从树;在上述当前从树中查找上述待删节点;
删除单元1403,删除上述查找到的待删节点。
实施例九,如图15所示,本发明实施例还提供了一种合并装置1500,包括:
检测单元1501,用于检测上述主树中的第一正整数个相邻的节点指向的从树中的有效节点数,小于第二正整数个从树能够容纳的节点数,且上述第一正整数大于第二正整数:
合并单元1502:在检测单元1501检测结果为是时,用于将上述主树中的第一正整数个相邻节点,及上述第一正整数个节点分别指向的从树,合并为:第二正整数个主树节点,以及与上述第二正整数个主树节点指向的从树。
实施例十,如图16所示,本发明实施例还提供了另一种插入装置1600,包括:
查找单元1601,用于根据待插节点的关键码值在主树中查找最近的主树节点,在搬移单元1603将当前从树中位于拆分节点右侧的全部节点搬移到新建从树中后执行查找最近主树节点,上述最近主树节点的关键码值大于且最接近待插节点的关键码值;上述主树的根节点初始化为具有最大的关键码值;上述主树中的左子节点大于父节点,父节点大于右子节点;
判断单元1602,用于以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是否已满,
搬移单元1603,若判断单元1602判断结果为是,则用于在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点右侧的全部节点搬移到新建从树中;
插入单元1604,若判断单元1602判断结果为是否,则用于将待插节点插入到当前从树中。
实施例十一,本发明实施例还提供了一种通信设备,包括:
实施例五所述的存储装置,和实施例六到实施例九所述的至少一个装置;或者,实施例五所述的存储装置,和实施例六到实施例九、实施例十所述的至少一个装置。
实施例十二,本发明实施例还提供了上述实施例一到实施例十一的方法或装置一个应用场景,如图17所示,可以一并参考图18,包括:
现场可编程门阵列1703(Field-programmable gate array,FPGA),上述现场可编程门阵列1703也可以为:专用集成电路(Application Specific IntergratedCircuits,ASIC);
现场可编程门阵列1703可以具有两个接口:与中央处理器1701连接的管理接口和与查找控制装置1702连接的查找接口;上述查找控制装置1702可以为路由器的网络处理器;
晶片内建随机存取存储器1704(Onchip RAM)可以集成于现场可编程门阵列1703内部,在现场可编程门阵列1703的外部还可以有随机存取存储器1705(Random-access memory,RAM);晶片内建随机存取存储器1704和随机存取存储器1705,共同用于存储主树和从树;在本实施例中,可以只有晶片内建随机存取存储器1704,用于存储主树和从树,也可以只有随机存取存储器1705,用于存储主树和从树;图18中的虚线三角形为本发明实施例的树在晶片内建随机存取存储器1704和随机存取存储器1705存储的一个示意,大致表示了在所述晶片内建随机存取存储器1704和随机存取存储器1705中存储的树的各部分的位置;
查找控制装置1702可以通过查找接口向现场可编程门阵列1703发送查找指令,然后通过查找接口接收查找的结果;上述查找过程的执行主体可以为现场可编程门阵列1703,具体查找的实现,可以参考前述的方法或装置实施例来实现。
中央处理器1701可以通过管理端口向现场可编程门阵列1703发送管理树的命令,上述管理树的命令可以为插入、或者删除等命令;现场可编程门阵列1703接收到管理树的命令后,对树进行管理;对树管理的具体实现可以参考前述的方法或装置实施例插入、删除等的实现。
本实施例中,中央处理器1701、现场可编程门阵列1703、晶片内建随机存取存储器1704和随机存取存储器1705可以处于同一个通信设备中;查找控制装置1702可以与上述通信设备通过查找接口连接,处于上述通信设备的外部。
本实施例中,现场可编程门阵列1703可以只有管理接口,此时,图17中的查找控制装置1702是不必要的;现场可编程门阵列1703也可以只有查找接口,此时,图17中的中央处理器1701是不必要的。
在本实施例中,关键码值可以是介质访问控制(Media Access Control,MAC)地址的值,也可是MAC地址与其它信息的组合;上述其它信息可以为虚拟局域网(Virtual Local Area Network,VLAN)地址等,本实施例对上述其它信息不作限定,可以理解的是,上述MAC地址、VLAN地址、MAC地址与其它信息的组合的举例不是关键码值的类型的穷举,不应理解为对本发明实施例的限定。
本发明实施例还给出了,在路由器中使用实施例一到实施例十一中任意一种方法或装置思想的实施例:
如图19所示,为一种从本发明实施例的树形数据结构中查找数据的方法实施例,可以包括以下步骤:
步骤1901:路由器接收数据报文;
上述数据报文可以为在路由器的任意物理输入端口输入的数据报文;
步骤1902:路由器根据上述数据报文携带的需要查找的数据的关键码值,在主树/从树中查找与上述关键码值相同的节点;上述主树和从树可以存储在路由器的存储器中;
上述步骤1902具体查找方法可以参考实施例二的方法;上述报文可以为二层转发数据报文,上述关键码可以表示为:MAC地址、也可以表示为MAC地址和VLAN信息;
步骤1903:路由器读取查找到的节点的数据信息,并将上述数据信息更新到上述数据报文;
步骤1904:路由器将上述更新后的数据报文从上述查找到的节点的数据信息指示的端口输出。
如图20所示,为一种更新本发明实施例的树形数据结构中的数据的方法实施例,可以包括以下步骤:
步骤2001:路由器的端口接收协议报文,并将上述协议报文发送给CPU;
步骤2002:CPU获得所述报文的关键码值;获得的方式可以是对协议报文进行解析,得到关键码值;
步骤2003:CPU发送插入命令给FPGA,命令将上述关键码值的协议报文插入到主树/从树中。具体的插入方法可以参考实施例一的方法。
上述协议报文可以是地址解析协议(Address Resolution Protocol,ARP)表项;当然上述协议报文也可以是其它类型的协议报文,本发明实施例对此不作限定;
如图21所示,为更新本发明实施例的树形数据结构中的数据的另一种方法实施例,可以包括以下步骤:
步骤2101:路由器的端口接收数据报文;
步骤2102:根据上述数据报文的指示或上述数据报文的输入端口信息,发送插入消息给CPU;上述插入消息包含关键码值;上述关键码值为上述数据报文的关键码值;
步骤2103:CPU解析上述插入消息得到关键码值,然后发送插入命令给FPGA,命令将上述关键码值的数据报文插入到主树/从树中。具体的插入方法可以参考实施例一的方法。
上述数据报文可以是MAC表项;当然协议报文也可以是其它类型的数据报文,本发明实施例对此不作限定。所述插入消息用于指示要在主树/从树中插入数据。
在上述实施例中路由器采用树形数据结构来实现大容量表项的插入,由于本发明实施例中的树形数据结构降低了树的高度,可以提高表项的插入速率。
上述实施例中,将树形数据结构的树分成主树和从树降低了树的高度,减少了节点插入的时间,提高了节点的插入速度。由于树的高度降低了,可以更快的查找到待查节点、待删节点,从而提高了查找节点和删除节点的速度。通过平衡主树可以降低主树的高度,从而进一步降低整棵树的高度,提高插入、查找、删除节点的速度。另外通过对从树的合并释放存储资源达到了提高存储空间利用率的效果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明实施例所提供的基于树形数据结构节点的插入的方法和存储装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种基于树形数据结构节点的插入方法,其特征在于,包括:
通过路由器的输入端口接收报文,并获得所述报文的关键码值;
根据待插节点的关键码值在主树中查找最近主树节点,所述最近主树节点的关键码值小于且最接近待插节点的关键码值;所述主树的根节点初始化为具有最小的关键码值;其中,所述主树包括父节点、所述父节点的左子节点和所述父节点的右子节点,且所述左子节点大于所述父节点,所述父节点大于所述右子节点;
以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是否已满,
若是,则在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点左侧的全部节点搬移到新建从树中,然后执行查找最近主树节点,
若否,则将待插节点插入到当前从树中;
所述将待插节点插入到当前从树中包括:
将所述关键码值的协议报文插入当前从树中。
2.根据权利要求1所述方法,其特征在于,所述根据待插节点的关键码值在主树中查找最近主树节点,以最近主树节点的外部指针指向的从树作为当前从树具体为:
读取主树根节点的外部指针,设置变量为所述主树根节点的外部指针,将所述根节点作为当前节点;
判断待插节点关键码值是否大于所述主树根节点的关键码值,设置所述变量为所述主树根节点的左子节点的外部指针,将所述左子节点作为当前节点,若否,将所述当前节点的右子节点作为当前节点;
判断当前节点是否为叶子节点,若是,以所述变量指向的从树作为当前从树。
3.根据权利要求2所述方法,其特征在于,还包括:
判断当前节点是否为空或无效,若是,以所述变量指向的从树作为当前从树。
4.根据权利要求1所述方法,其特征在于,还包括对主树进行平衡操作,所述对主树进行平衡操作包括:
在所述主树的某一深度的节点处于未满状态,且所述某一深度非所述主树的最下层时,执行对主树进行平衡操作;或
在最下层节点以上的各深度节点的为空的数量达到设定值时,执行对主树进行平衡操作。
5.根据权利要求1至4任意一项所述方法,其特征在于,所述当前从树是否已满包括:
所述当前从树的使用率是否达到设定的使用率,若是,则确定所述当前从树已满,若否,则确定所述当前从树未满。
6.根据权利要求1至4任意一项所述方法,其特征在于,还包括:
根据待查节点的关键码值在主树中查找待查节点,若主树中不存在上述待查节点,则查找最近主树节点;所述最近主树节点的关键码值小于且最接近所述待查节点的关键码值;
以所述最近主树节点的外部指针指向的从树作为当前从树;
在所述当前从树中查找所述待查节点;或还包括:
根据待删节点的关键码值在主树中查找待删节点,若主树中不存在上述待删节点,则查找最近主树节点;所述最近主树节点的关键码值小于且最接近待删节点的关键码值;
以最近主树节点的外部指针指向的从树作为当前从树;
在所述当前从树中查找所述待删节点;
删除所述查找到的待删节点。
7.根据权利要求6所述方法,其特征在于,所述根据待查节点的关键码值在主树中查找待查节点之前还包括:
通过路由器的输入端口接收数据报文,并得到所述数据报文需要查找的数据的关键码值即为待查节点的关键码值;
所述在当前从树中查找所述待查节点之后还包括:
读取查找到的节点的数据信息,并将上述数据信息更新到所述数据报文;然后将所述更新后的数据报文从所述查找到的节点的数据信息指示的端口输出;和/或
所述删除所述查找到的待删节点之后还包括:
当所述主树中的第一正整数个相邻的节点指向的从树中的有效节点数,小于第二正整数个从树能够容纳的节点数,且所述第一正整数大于第二正整数时:
将所述主树中的第一正整数个相邻节点,及所述第一正整数个节点分别指向的从树,合并为:第二正整数个主树节点,以及与所述第二正整数个主树节点指向的从树。
8.根据权利要求7所述方法,其特征在于,所述主树中的第一正整数个相邻的节点指向的从树中的有效节点数,小于第二正整数个从树能够容纳的节点数包括:
主树中两个相邻的节点指向的从树中的有效节点数,小于一个从树能够容纳的节点数;
所述将主树中的第一正整数个相邻节点,及所述第一正整数个节点分别指向的从树,合并为:第二正整数个主树节点,以及与所述第二正整数个主树节点指向的从树具体为:
将所述主树中,两个相邻节点中较大的主树节点,及其指向的从树中的有效节点,插入所述两个相邻节点中较小的主树节点指向的从树中。
9.一种基于树形数据结构节点的插入方法,其特征在于,包括:
通过路由器的输入端口接收报文,并获得所述报文的关键码值;
根据待插节点的关键码值在主树中查找最近主树节点,所述最近主树节点的关键码值大于且最接近待插节点的关键码值;所述主树的根节点初始化为具有最大的关键码值;所述主树中的左子节点大于父节点,父节点大于右子节点;
以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是否已满,
若是,则在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点右侧的全部节点搬移到新建从树中,然后执行查找最近主树节点;
若否,则将待插节点插入到当前从树中;
所述将待插节点插入到当前从树中包括:
将所述关键码值的协议报文插入当前从树中。
10.一种存储装置,其特征在于,包括:
从树存储单元,用于存储从树;
主树存储单元,用于存储主树,主树中的节点具有指向从树的外部指针;
所述存储装置还包括:
查找单元,用于在搬移单元将当前从树中位于拆分节点左侧的全部节点搬移到新建从树中后根据待插节点的关键码值在主树中查找最近主树节点,所述最近主树节点的关键码值小于且最接近待插节点的关键码值;所述主树的根节点初始化为具有最小的关键码值;其中,所述主树包括父节点、所述父节点的左子节点和所述父节点的右子节点,且所述左子节点大于所述父节点,所述父节点大于所述右子节点,
判断单元,用于以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是否已满,
搬移单元,若判断单元判断结果为是,则用于在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点左侧的全部节点搬移到新建从树中,
插入单元,若判断单元判断结果为是否,则用于将待插节点插入到当前从树中。
11.一种存储装置,其特征在于,包括:
从树存储单元,用于存储从树;
主树存储单元,用于存储主树,主树中的节点具有指向从树的外部指针;
所述存储装置还包括:
第一查找单元,根据待查节点的关键码值在主树中查找待查节点,若主树中不存在上述待查节点,则查找最近主树节点;所述最近主树节点的关键码值小于且最接近待查节点的关键码值,
待查节点查找单元,用于以所述最近主树节点的外部指针指向的从树作为当前从树;在所述当前从树中查找所述待查找节点。
12.一种存储装置,其特征在于,包括:
从树存储单元,用于存储从树;
主树存储单元,用于存储主树,主树中的节点具有指向从树的外部指针;
所述存储装置还包括:
第二查找单元,用于根据待删节点的关键码值在主树中查找待删节点,若主树中不存在上述待删节点,则查找最近主树节点;所述最近主树节点的关键码值小于且最接近待删节点的关键码值,
待删节点查找单元,用于以最近主树节点的外部指针指向的从树作为当前从树;在所述当前从树中查找所述待删节点,
删除单元,删除所述查找到的待删节点。
13.一种存储装置,其特征在于,包括:
从树存储单元,用于存储从树;
主树存储单元,用于存储主树,主树中的节点具有指向从树的外部指针;
所述存储装置还包括:
检测单元,用于检测所述主树中是否存在主树中的第一正整数个相邻的节点指向的从树中的有效节点数,小于第二正整数个从树能够容纳的节点数,且所述第一正整数大于第二正整数,
合并单元:用于在检测单元检测结果为是时,将所述主树中的第一正整数个相邻节点,及所述第一正整数个节点分别指向的从树,合并为:第二正整数个主树节点,以及与所述第二正整数个主树节点指向的从树。
14.一种存储装置,其特征在于,包括:
从树存储单元,用于存储从树;
主树存储单元,用于存储主树,主树中的节点具有指向从树的外部指针;
查找单元,用于根据待插节点的关键码值在主树中查找最近主树节点,在搬移单元将当前从树中位于拆分节点右侧的全部节点搬移到新建从树中后执行查找最近主树节点,所述最近主树节点的关键码值大于且最接近待插节点的关键码值;所述主树的根节点初始化为具有最大的关键码值,其中,所述主树包括父节点、所述父节点的左子节点和所述父节点的右子节点,且所述左子节点大于所述父节点,所述父节点大于所述右子节点;
判断单元,用于以最近主树节点的外部指针指向的从树作为当前从树,判断当前从树是否已满,
搬移单元,若判断单元判断结果为是,则用于在当前从树中任意选择一个节点作为拆分节点,将拆分节点插入到主树中作为新建主树节点,为新建主树节点分配新建从树,并将新建主树节点的外部指针指向新建从树,将当前从树中位于拆分节点右侧的全部节点搬移到新建从树中;
插入单元,若判断单元判断结果为是否,则用于将待插节点插入到当前从树中。
15.一种通信设备,其特征在于,包括:
权利要求10至14所述的存储装置中的任意一个。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101326534A CN101515298B (zh) | 2009-03-30 | 2009-03-30 | 基于树形数据结构节点的插入的方法和存储装置 |
US12/732,693 US8208408B2 (en) | 2009-03-30 | 2010-03-26 | Tree-based node insertion method and memory device |
EP10003291A EP2237196A1 (en) | 2009-03-30 | 2010-03-26 | Tree-based node insertion method and memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101326534A CN101515298B (zh) | 2009-03-30 | 2009-03-30 | 基于树形数据结构节点的插入的方法和存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101515298A CN101515298A (zh) | 2009-08-26 |
CN101515298B true CN101515298B (zh) | 2013-09-25 |
Family
ID=41039751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101326534A Active CN101515298B (zh) | 2009-03-30 | 2009-03-30 | 基于树形数据结构节点的插入的方法和存储装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8208408B2 (zh) |
EP (1) | EP2237196A1 (zh) |
CN (1) | CN101515298B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9155320B2 (en) * | 2011-07-06 | 2015-10-13 | International Business Machines Corporation | Prefix-based leaf node storage for database system |
CN104143152B (zh) * | 2014-07-04 | 2017-12-19 | 北京思特奇信息技术股份有限公司 | 一种业务关系二叉树节点修剪方法及装置 |
SG10201503755QA (en) * | 2015-05-13 | 2016-12-29 | Dataesp Private Ltd | Searching large data space for statistically significant patterns |
CN105159758B (zh) * | 2015-08-07 | 2018-11-13 | 北京思特奇信息技术股份有限公司 | 一种关系对象递归合并求取方法及系统 |
CN108241655A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种系统数据转存方法 |
US10706105B2 (en) * | 2017-02-09 | 2020-07-07 | Micron Technology, Inc. | Merge tree garbage metrics |
US10719495B2 (en) | 2017-02-09 | 2020-07-21 | Micron Technology, Inc. | Stream selection for multi-stream storage devices |
US10725988B2 (en) * | 2017-02-09 | 2020-07-28 | Micron Technology, Inc. | KVS tree |
US10706106B2 (en) | 2017-02-09 | 2020-07-07 | Micron Technology, Inc. | Merge tree modifications for maintenance operations |
CN107608859A (zh) * | 2017-09-29 | 2018-01-19 | 郑州云海信息技术有限公司 | 存储系统状态监控方法、装置、设备及计算机存储介质 |
US11100071B2 (en) | 2018-10-10 | 2021-08-24 | Micron Technology, Inc. | Key-value store tree data block spill with compaction |
US10915546B2 (en) | 2018-10-10 | 2021-02-09 | Micron Technology, Inc. | Counter-based compaction of key-value store tree data block |
US11048755B2 (en) | 2018-12-14 | 2021-06-29 | Micron Technology, Inc. | Key-value store tree with selective use of key portion |
US10852978B2 (en) | 2018-12-14 | 2020-12-01 | Micron Technology, Inc. | Key-value store using journaling with selective data storage format |
US10936661B2 (en) | 2018-12-26 | 2021-03-02 | Micron Technology, Inc. | Data tree with order-based node traversal |
CN111026765B (zh) * | 2019-12-16 | 2023-07-14 | 武汉轻工大学 | 严格平衡二叉树的动态处理方法、设备、存储介质及装置 |
CN111125449B (zh) * | 2019-12-24 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 对象信息存储方法、装置及存储介质 |
CN111488496B (zh) * | 2020-04-30 | 2023-07-21 | 湖北师范大学 | 一种基于滑动窗口的Tango树构建方法及系统 |
CN112000482B (zh) * | 2020-08-25 | 2024-03-05 | 北京金山云网络技术有限公司 | 一种内存管理的方法、装置、电子设备及存储介质 |
CN112785284A (zh) * | 2020-12-31 | 2021-05-11 | 银清科技有限公司 | 基于结构化文档的报文入库方法及装置 |
CN113109642B (zh) * | 2021-03-10 | 2023-12-05 | 中国电力科学研究院有限公司 | 一种用于对电能质量信号数据处理的方法及系统 |
CN113176975B (zh) * | 2021-03-30 | 2023-10-31 | 东软集团股份有限公司 | 监控数据的处理方法、装置、存储介质和电子设备 |
US11734155B2 (en) * | 2021-07-22 | 2023-08-22 | Disney Enterprises, Inc. | Fully traceable and intermediately deterministic rule configuration and assessment framework |
CN115374124B (zh) * | 2022-08-29 | 2023-05-12 | 钟士平 | 基于a+树数据结构存储的数据查询方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1276567A (zh) * | 1999-06-03 | 2000-12-13 | 国际商业机器公司 | 在多窗口中显示复杂树结构 |
CN1859194A (zh) * | 2006-02-21 | 2006-11-08 | 华为技术有限公司 | 终端设备管理方法及其系统、以及终端设备 |
CN101141389A (zh) * | 2007-09-29 | 2008-03-12 | 华为技术有限公司 | 增强多位Trie树查找方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625611B1 (en) * | 2000-03-15 | 2003-09-23 | Cadence Design Systems, Inc. | Method and apparatus for representing multidimensional data |
US7899067B2 (en) * | 2002-05-31 | 2011-03-01 | Cisco Technology, Inc. | Method and apparatus for generating and using enhanced tree bitmap data structures in determining a longest prefix match |
US20040133590A1 (en) * | 2002-08-08 | 2004-07-08 | Henderson Alex E. | Tree data structure with range-specifying keys and associated methods and apparatuses |
US20040210588A1 (en) * | 2003-04-18 | 2004-10-21 | Simkins Mark B. | Methods and apparatus for address lookup |
US7120637B2 (en) * | 2003-05-30 | 2006-10-10 | Microsoft Corporation | Positional access using a b-tree |
US20050071336A1 (en) * | 2003-09-30 | 2005-03-31 | Microsoft Corporation | Systems and methods for logging and recovering updates to data structures |
US7383276B2 (en) * | 2004-01-30 | 2008-06-03 | Microsoft Corporation | Concurrency control for B-trees with node deletion |
US8108355B2 (en) * | 2006-10-27 | 2012-01-31 | Hewlett-Packard Development Company, L.P. | Providing a partially sorted index |
US7831626B1 (en) * | 2006-11-27 | 2010-11-09 | Netlogic Microsystems, Inc. | Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node |
US20100146003A1 (en) * | 2008-12-10 | 2010-06-10 | Unisys Corporation | Method and system for building a B-tree |
-
2009
- 2009-03-30 CN CN2009101326534A patent/CN101515298B/zh active Active
-
2010
- 2010-03-26 US US12/732,693 patent/US8208408B2/en active Active
- 2010-03-26 EP EP10003291A patent/EP2237196A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1276567A (zh) * | 1999-06-03 | 2000-12-13 | 国际商业机器公司 | 在多窗口中显示复杂树结构 |
CN1859194A (zh) * | 2006-02-21 | 2006-11-08 | 华为技术有限公司 | 终端设备管理方法及其系统、以及终端设备 |
CN101141389A (zh) * | 2007-09-29 | 2008-03-12 | 华为技术有限公司 | 增强多位Trie树查找方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101515298A (zh) | 2009-08-26 |
US8208408B2 (en) | 2012-06-26 |
EP2237196A1 (en) | 2010-10-06 |
US20100246446A1 (en) | 2010-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101515298B (zh) | 基于树形数据结构节点的插入的方法和存储装置 | |
CN1316390C (zh) | 用树状分段改善树搜索性能和存储器带宽的方法和系统 | |
JP6940615B2 (ja) | データ処理方法およびデバイス | |
US10496627B2 (en) | Consistent ring namespaces facilitating data storage and organization in network infrastructures | |
CN103218455B (zh) | Key-Value数据库用户请求的高速并发处理方法 | |
CN100550847C (zh) | 一种解决Hash冲突的方法及装置 | |
CN105224692A (zh) | 支持多核处理器的sdn多级流表并行查找的系统及方法 | |
US20150127649A1 (en) | Efficient implementations for mapreduce systems | |
CN101604337B (zh) | 一种哈希表项存储、查找装置及方法 | |
WO2015032216A1 (zh) | 路由查找方法及装置、B-Tree树结构的构建方法 | |
CN103929454A (zh) | 一种云计算平台中负载均衡存储的方法和系统 | |
CN101667958A (zh) | 选择哈希函数的方法、存储及查找路由表的方法及装置 | |
CN101375241A (zh) | 集群文件系统中的有效数据管理 | |
CN102314485A (zh) | 哈希表添加、查找和删除方法及装置 | |
CN106570113B (zh) | 一种海量矢量切片数据云存储方法及系统 | |
CN104298541A (zh) | 云存储系统的数据分布算法及其装置 | |
CN109684231A (zh) | 用于识别固态盘中的热数据和流的系统及方法 | |
CN105577806B (zh) | 一种分布式缓存方法及系统 | |
CN104834484B (zh) | 基于嵌入式可编程逻辑阵列的数据处理系统及处理方法 | |
CN101344861B (zh) | 一种智能卡内存管理方法 | |
CN104111924A (zh) | 一种数据库系统 | |
CN107122130A (zh) | 一种数据重删方法及装置 | |
CN109684099A (zh) | 消息处理方法及装置 | |
CN101841438A (zh) | 一种访问存储海量并发tcp流的流记录的方法或系统 | |
CN101783814A (zh) | 海量存储系统的元数据存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |