CN109710542B - 一种满n叉树构建方法及装置 - Google Patents

一种满n叉树构建方法及装置 Download PDF

Info

Publication number
CN109710542B
CN109710542B CN201811631948.1A CN201811631948A CN109710542B CN 109710542 B CN109710542 B CN 109710542B CN 201811631948 A CN201811631948 A CN 201811631948A CN 109710542 B CN109710542 B CN 109710542B
Authority
CN
China
Prior art keywords
memory space
node
index value
full
space address
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
Application number
CN201811631948.1A
Other languages
English (en)
Other versions
CN109710542A (zh
Inventor
罗树权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Pixel Software Technology Co Ltd
Original Assignee
Beijing Pixel Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Pixel Software Technology Co Ltd filed Critical Beijing Pixel Software Technology Co Ltd
Priority to CN201811631948.1A priority Critical patent/CN109710542B/zh
Publication of CN109710542A publication Critical patent/CN109710542A/zh
Application granted granted Critical
Publication of CN109710542B publication Critical patent/CN109710542B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例涉及数据处理技术领域,具体而言,涉及一种满N叉树构建方法及装置,该方法能够基于满N叉树的节点数量计算出满N叉树的所需存储空间总和,并根据所需存储空间总和获取内存空间,基于设置的多个索引值将内存空间分配至满N叉树中的每个节点,如此,能够将内存空间进行一次性分配,改善了分配内存空间次数过多的问题,基于指针指向的内存空间地址与设定内存空间地址是否相同将根节点以及子节点的内存空间地址进行互存,能够避免数据过于分散的问题,进而减少Cache Missing现象的发生。

Description

一种满N叉树构建方法及装置
技术领域
本发明实施例涉及数据处理技术领域,具体而言,涉及一种满N叉树构建方法及装置。
背景技术
Cache存储器是为了缓解处理器的处理速度和内存的存取速度而在中间加的高速存储器,其存取速度比内存高,计算时先在Cache存储器中查找要使用的数据是否存在,如果存在,则使用Cache存储器中的数据进行计算,否则要把数据从内存中先调度进Cache存储器中,然后再使用,若不存在,这种现象称为Cache Missing,一旦发生这个现象,处理器就会停止当前的工作等待数据调度进来之后再执行,如此,不利于处理器的高速运算。但是现有的Cache存储器大多会存在Cache Missing的现象。
发明内容
有鉴于此,本发明提供了一种满N叉树构建方法及装置,能够避免Cache Missing现象的发生。
本发明实施例提供了一种满N叉树构建方法,所述方法包括:
为满N叉树中的每个节点设置对应的索引值;
计算满N叉树的节点的数量,根据所述数量计算出所述满N叉树的所需存储空间总和,根据所述所需存储空间总和获取内存空间,基于设置的多个索引值将所述内存空间分配至所述每个节点;其中,所述每个节点所分配的内存空间设置有内存空间地址;
创建指针,使所述指针指向所述满N叉树中的根节点的内存空间地址;
判断所述指针指向的内存空间地址与设定内存空间地址是否相同,若不相同,查找出所述根节点的所有子节点的索引值,针对查找出的每个索引值,获取该索引值对应的子节点的内存空间地址,将该索引值对应的子节点的内存空间地址存储于所述根节点的内存空间,将所述根节点的内存空间地址存储于该索引值对应的子节点的内存空间。
可选地,所述方法还包括:
使所述指针指向下一个内存空间地址,其中,所述下一个内存空间地址对应的节点的索引值比所述根节点的索引值大一;
判断所述下一个内存空间地址与所述设定内存空间地址是否相同;
若不相同,查找出所述下一个内存空间地址对应的节点的所有子节点的索引值;针对查找出的每个索引值,获取该索引值对应的子节点的内存空间地址,将该索引值对应的子节点的父节点的内存空间地址值存储于该索引值对应的子节点的内存空间,将所述下一个内存空间地址存储于该索引值对应的子节点的父节点的内存空间;
若相同,判定所述满N叉树构建完成。
可选地,为满N叉树中的每个节点设置对应的索引值的步骤,包括:
获取所述每个节点的深度值;
按照深度值由小到大的顺序依次为所述每个节点设置索引值,针对深度值相同的多个节点,按照设定顺序依次设置索引值。
可选地,针对深度值相同的多个节点,按照设定顺序依次设置索引值的步骤,包括:
针对深度值相同的多个节点,按照由左到右的顺序依次设置索引值。
可选地,基于设置的多个索引值将所述内存空间分配至所述每个节点的步骤,包括:
将所述内存空间按照索引值由小到大的顺序平均分配至所述每个节点。
本发明实施例还提供了一种满N叉树构建装置,所述装置包括:
索引值设置模块,用于为满N叉树中的每个节点设置对应的索引值;
内存空间分配模块,用于计算满N叉树的节点的数量,根据所述数量计算出所述满N叉树的所需存储空间总和,根据所述所需存储空间总和获取内存空间,基于设置的多个索引值将所述内存空间分配至所述每个节点;其中,所述每个节点所分配的内存空间设置有内存空间地址;
指针创建模块,用于创建指针,使所述指针指向所述满N叉树中的根节点的内存空间地址;
判断模块,用于判断所述指针指向的内存空间地址与设定内存空间地址是否相同,若不相同,查找出所述根节点的所有子节点的索引值,针对查找出的每个索引值,获取该索引值对应的子节点的内存空间地址,将该索引值对应的子节点的内存空间地址存储于所述根节点的内存空间,将所述根节点的内存空间地址存储于该索引值对应的子节点的内存空间。
可选地,所述装置还包括:
调整模块,用于使所述指针指向下一个内存空间地址,其中,所述下一个内存空间地址对应的节点的索引值比所述根节点的索引值大一;
所述判断模块还用于判断所述下一个内存空间地址与所述设定内存空间地址是否相同;
若不相同,查找出所述下一个内存空间地址对应的节点的所有子节点的索引值;针对查找出的每个索引值,获取该索引值对应的子节点的内存空间地址,将该索引值对应的子节点的父节点的内存空间地址值存储于该索引值对应的子节点的内存空间,将所述下一个内存空间地址存储于该索引值对应的子节点的父节点的内存空间;
若相同,判定所述满N叉树构建完成。
可选地,所述索引值设置模块通过以下方式为满N叉树中的每个节点设置对应的索引值:
获取所述每个节点的深度值;
按照深度值由小到大的顺序依次为所述每个节点设置索引值,针对深度值相同的多个节点,按照设定顺序依次设置索引值。
可选地,所述索引值设置模块通过以下方式针对深度值相同的多个节点,按照设定顺序依次设置索引值:
针对深度值相同的多个节点,按照由左到右的顺序依次设置索引值。
可选地,所述内存空间分配模块通过以下方式基于设置的多个索引值将所述内存空间分配至所述每个节点:
将所述内存空间按照索引值由小到大的顺序平均分配至所述每个节点。
本发明实施例还提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种满N叉树构建方法。
本发明实施例还提供了一种计算机可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在电子设备执行上述的一种满N叉树构建方法。
有益效果
本发明实施例提供的一种满N叉树构建方法及装置,能够基于满N叉树的节点数量计算出满N叉树的所需存储空间总和,并根据所需存储空间总和获取内存空间,基于设置的多个索引值将内存空间分配至满N叉树中的每个节点,如此,能够将内存空间进行一次性分配,改善了分配内存空间次数过多的问题,基于指针指向的内存空间地址与设定内存空间地址是否相同将根节点以及子节点的内存空间地址进行互存,能够避免数据过于分散的问题,进而减少Cache Missing现象的发生。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例所提供的一种电子设备10的方框示意图。
图2为本发明实施例所提供的一种满N叉树构建方法的流程图。
图3为本发明实施例所提供的一种满N叉树的结构示意图。
图4为本发明实施例所提供的一种满N叉树构建装置20的模块框图。
图标:
10-电子设备;11-存储器;12-处理器;13-网络模块;
20-满N叉树构建装置;21-索引值设置模块;22-内存空间分配模块;23-指针创建模块;24-判断模块;25-调整模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
树是计算机科学中一种重要的数据结构,例如平衡N叉树可以用来实现查找算法,提升查找效率,在图形学中用来对一个有限的区域按照一定的规则进行划分管理,从而提升计算效率。
发明人经调查发现,现有的满N叉树构建技术大多递归地在一个N叉树节点的构造函数中分别构造其子节点,在其子节点中继续构造其子节点,每个节点的子节点由其自身负责构造。在现有的方案中,需要在运行时为每个节点都单独分配内存,分配内存是一个相对慢的操作,会产生过大开销。此外,还会造成节点分散在内存中,数据分布过于分散会造成大量的Cache Missing现象,不利于处理器的高速运算。
以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。
基于上述研究,本发明实施例提供了一种满N叉树构建方法及装置,能够有效减少Cache Missing现象的发生。
图1示出了本发明实施例所提供的一种电子设备10的方框示意图。本发明实施例中的电子设备10具有数据存储、传输、处理功能,如图1所示,电子设备10包括:存储器11、处理器12、网络模块13和一种满N叉树构建装置20。
存储器11、处理器12和网络模块13之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件互相之间可以通过一条或多条通讯总线或信号线实现电性连接。存储器11中存储有一种满N叉树构建装置20,所述一种满N叉树构建装置20包括至少一个可以软件或固件(firmware)的形式储存于所述存储器11中的软件功能模块,所述处理器12通过运行存储在存储器11内的软件程序以及模块,例如本发明实施例中的一种满N叉树构建装置20,从而执行各种功能应用以及数据处理,即实现本发明实施例中的一种满N叉树构建方法。
其中,所述存储器11可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器11用于存储程序,所述处理器12在接收到执行指令后,执行所述程序。
所述处理器12可能是一种集成电路芯片,具有数据的处理能力。上述的处理器12可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
网络模块13用于通过网络建立电子设备10与其他通信终端设备之间的通信连接,实现网络信号及数据的收发操作。上述网络信号可包括无线信号或者有线信号。
可以理解,图1所示的结构仅为示意,电子设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
本发明实施例还提供一种计算机可读存储介质,所述可读存储介质包括计算机程序。所述计算机程序运行时控制所述可读存储介质所在电子设备10执行下面的一种满N叉树构建方法。
图2示出了本发明实施例所提供的一种满N叉树构建方法的流程图。所述方法有关的流程所定义的方法步骤应用于电子设备10,可以由所述处理器12实现。下面将对图2所示的具体流程进行详细阐述:
在本实施例中,以满二叉树为例进行说明,进一步地,以深度值为2的满二叉树进行说明。
步骤S21,为满N叉树中的每个节点设置对应的索引值。
请结合参阅图3,首先获取每个节点的深度值,按照深度值由小到大、同一深度值由左往右的顺序设置索引值,得到的索引值为:I0、I1、I2、I3、I4、I5和I6
步骤S22,计算满N叉树的节点的数量,根据数量计算出满N叉树的所需存储空间总和,根据所需存储空间总和获取内存空间,基于设置的多个索引值将内存空间分配至每个节点。
例如,每个节点所需内存空间为1MB,则满N叉树的所需存储空间总和为7MB,因此,获取的内存空间为7MB。
进一步地,按照索引值由小到大的顺序将7MB平均分配至每个节点,其中,每个节点所分配的内存空间设置有内存空间地址。
其中,在为每个节点分类了内存空间后,将每个节点的内存空间重置为空。
节点索引值以及对应的内存空间地址如表1所示:
表1
节点 内存空间地址
I<sub>0</sub> 501-510
I<sub>1</sub> 511-520
I<sub>2</sub> 521-530
I<sub>3</sub> 531-540
I<sub>4</sub> 541-550
I<sub>5</sub> 551-560
I<sub>6</sub> 561-570
可以理解,通过上述内存空间分配方法,能够实现内存空间的一次性分配,避免了分配内存次数过多带来的过大开销和时间等待,保证了处理器的高速运算,体现在游戏层面,能够使得游戏更加平滑流畅。
步骤S23,创建指针,使指针指向满N叉树中的根节点的内存空间地址。
在本实施例中,创建两个指针:start指针和end指针。
其中,start指针指向节点I0的内存空间地址的开头,也就是501,end指针指向第一个叶子节点(I3)的内存空间地址的开头,也就是531。
步骤S24,判断指针指向的内存空间地址与设定内存空间地址是否相同。
具体地,判断start指针指向的内存空间地址与end指针指向的内存空间地址是否相同,若相同,表明二叉树构建完成,若不相同,转向步骤S25。
步骤S25,查找出根节点的所有子节点的索引值,针对查找出的每个索引值,获取该索引值对应的子节点的内存空间地址,将该索引值对应的子节点的内存空间地址存储于所述根节点的内存空间,将所述根节点的内存空间地址存储于该索引值对应的子节点的内存空间。
例如,start指针指向的内存空间地址501不等于end指针指向的内存空间地址531,此时,查找出根节点I0的所有子节点的索引值:I1和I2,针对I1,将内存空间地址511存储于根节点I0的存储空间,将内存空间地址501存储于节点I1的存储空间,针对I2作类似操作。
可以理解,索引值为x的节点的第一个子节点的索引值为N*x+1,以本实施例的根节点I0为例,第一个叶子节点的索引值为0*2+1=1,即I1
步骤S26,使指针指向下一个内存空间地址。
例如,使start指针指向内存空间地址511,也可以理解为start指针按照索引值由小到大的顺序依次向后移动一个位置,初始状态下,start指针指向根节点I0的内存空间地址501,完成步骤S25之后,start指针指向节点I1的内存空间地址511。
步骤S27,判断下一个内存空间地址与设定内存空间地址是否相同,根据判断结果进行对应操作。
可以理解,这一步的操作与步骤S25类似。
例如,start指针指向节点I1的内存空间地址511与end指针指向的内存空间地址531不相同,查找出节点I1的子节点I3和I4,针对节点I3,将内存空间地址531存储于节点I1的内存空间,将节点I1的内存空间地址511存储于节点I3的内存空间,以此类推,直至start指针移动到节点I3,如此,完成满二叉树的构建。
通过上述构建方法,能够避免数据过于分散,使得整个满二叉树的数据都排列在一段连续的内存空间内,这样的分布是Cache友好的。
在上述基础上,如图4所示,本发明实施例提供了一种满N叉树构建装置20,所述一种满N叉树构建装置20包括:索引值设置模块21、内存空间分配模块22、指针创建模块23、判断模块24和调整模块25。
索引值设置模块21,用于为满N叉树中的每个节点设置对应的索引值。
由于索引值设置模块21和图2中步骤S21的实现原理类似,因此在此不作更多说明。
内存空间分配模块22,用于计算满N叉树的节点的数量,根据所述数量计算出所述满N叉树的所需存储空间总和,根据所述所需存储空间总和获取内存空间,基于设置的多个索引值将所述内存空间分配至所述每个节点;其中,所述每个节点所分配的内存空间设置有内存空间地址。
由于内存空间分配模块22和图2中步骤S22的实现原理类似,因此在此不作更多说明。
指针创建模块23,用于创建指针,使所述指针指向所述满N叉树中的根节点的内存空间地址。
由于指针创建模块23和图2中步骤S23的实现原理类似,因此在此不作更多说明。
判断模块24,用于判断所述指针指向的内存空间地址与设定内存空间地址是否相同,若不相同,查找出所述根节点的所有子节点的索引值,针对查找出的每个索引值,获取该索引值对应的子节点的内存空间地址,将该索引值对应的子节点的内存空间地址存储于所述根节点的内存空间,将所述根节点的内存空间地址存储于该索引值对应的子节点的内存空间。
由于判断模块24和图2中步骤S24、步骤S25和步骤S27的实现原理类似,因此在此不作更多说明。
调整模块25,用于使所述指针指向下一个内存空间地址,其中,所述下一个内存空间地址对应的节点的索引值比所述根节点的索引值大一。
由于调整模块25和图2中步骤S26的实现原理类似,因此在此不作更多说明。
综上,本发明实施例所提供的一种满N叉树构建方法及装置,通过将内存空间进行一次性、连续地分配,改善了分配内存空间次数过多的问题,能够避免数据过于分散的问题,进而减少Cache Missing现象的发生。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备10,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种满N叉树构建方法,其特征在于,所述方法包括:
为满N叉树中的每个节点设置对应的索引值;
计算满N叉树的节点的数量,根据所述数量计算出所述满N叉树的所需存储空间总和,根据所述所需存储空间总和获取内存空间,基于设置的多个索引值将所述内存空间分配至所述每个节点;其中,所述每个节点所分配的内存空间设置有内存空间地址;
创建指针,使所述指针指向所述满N叉树中的根节点的内存空间地址;
判断所述指针指向的内存空间地址与设定内存空间地址是否相同,若不相同,查找出所述根节点的所有子节点的索引值,针对查找出的每个索引值,获取该索引值对应的子节点的内存空间地址,将该索引值对应的子节点的内存空间地址存储于所述根节点的内存空间,将所述根节点的内存空间地址存储于该索引值对应的子节点的内存空间;
所述方法还包括:
使所述指针指向下一个内存空间地址,其中,所述下一个内存空间地址对应的节点的索引值比所述根节点的索引值大一;
判断所述下一个内存空间地址与所述设定内存空间地址是否相同;
若不相同,查找出所述下一个内存空间地址对应的节点的所有子节点的索引值;针对查找出的每个索引值,获取该索引值对应的子节点的内存空间地址,将该索引值对应的子节点的父节点的内存空间地址值存储于该索引值对应的子节点的内存空间,将所述下一个内存空间地址存储于该索引值对应的子节点的父节点的内存空间;
若相同,判定所述满N叉树构建完成。
2.根据权利要求1所述的满N叉树构建方法,其特征在于,为满N叉树中的每个节点设置对应的索引值的步骤,包括:
获取所述每个节点的深度值;
按照深度值由小到大的顺序依次为所述每个节点设置索引值,针对深度值相同的多个节点,按照设定顺序依次设置索引值。
3.根据权利要求1所述的满N叉树构建方法,其特征在于,针对深度值相同的多个节点,按照设定顺序依次设置索引值的步骤,包括:
针对深度值相同的多个节点,按照由左到右的顺序依次设置索引值。
4.根据权利要求1所述的满N叉树构建方法,其特征在于,基于设置的多个索引值将所述内存空间分配至所述每个节点的步骤,包括:
将所述内存空间按照索引值由小到大的顺序平均分配至所述每个节点。
5.一种满N叉树构建装置,其特征在于,所述装置包括:
索引值设置模块,用于为满N叉树中的每个节点设置对应的索引值;
内存空间分配模块,用于计算满N叉树的节点的数量,根据所述数量计算出所述满N叉树的所需存储空间总和,根据所述所需存储空间总和获取内存空间,基于设置的多个索引值将所述内存空间分配至所述每个节点;其中,所述每个节点所分配的内存空间设置有内存空间地址;
指针创建模块,用于创建指针,使所述指针指向所述满N叉树中的根节点的内存空间地址;
判断模块,用于判断所述指针指向的内存空间地址与设定内存空间地址是否相同,若不相同,查找出所述根节点的所有子节点的索引值,针对查找出的每个索引值,获取该索引值对应的子节点的内存空间地址,将该索引值对应的子节点的内存空间地址存储于所述根节点的内存空间,将所述根节点的内存空间地址存储于该索引值对应的子节点的内存空间;
所述装置还包括:
调整模块,用于使所述指针指向下一个内存空间地址,其中,所述下一个内存空间地址对应的节点的索引值比所述根节点的索引值大一;
所述判断模块还用于判断所述下一个内存空间地址与所述设定内存空间地址是否相同;
若不相同,查找出所述下一个内存空间地址对应的节点的所有子节点的索引值;针对查找出的每个索引值,获取该索引值对应的子节点的内存空间地址,将该索引值对应的子节点的父节点的内存空间地址值存储于该索引值对应的子节点的内存空间,将所述下一个内存空间地址存储于该索引值对应的子节点的父节点的内存空间;
若相同,判定所述满N叉树构建完成。
6.根据权利要求5所述的满N叉树构建装置,其特征在于,所述索引值设置模块通过以下方式为满N叉树中的每个节点设置对应的索引值:
获取所述每个节点的深度值;
按照深度值由小到大的顺序依次为所述每个节点设置索引值,针对深度值相同的多个节点,按照设定顺序依次设置索引值。
7.根据权利要求6所述的满N叉树构建装置,其特征在于,所述索引值设置模块通过以下方式针对深度值相同的多个节点,按照设定顺序依次设置索引值:
针对深度值相同的多个节点,按照由左到右的顺序依次设置索引值。
8.根据权利要求5所述的满N叉树构建装置,其特征在于,所述内存空间分配模块通过以下方式基于设置的多个索引值将所述内存空间分配至所述每个节点:
将所述内存空间按照索引值由小到大的顺序平均分配至所述每个节点。
CN201811631948.1A 2018-12-28 2018-12-28 一种满n叉树构建方法及装置 Active CN109710542B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811631948.1A CN109710542B (zh) 2018-12-28 2018-12-28 一种满n叉树构建方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811631948.1A CN109710542B (zh) 2018-12-28 2018-12-28 一种满n叉树构建方法及装置

Publications (2)

Publication Number Publication Date
CN109710542A CN109710542A (zh) 2019-05-03
CN109710542B true CN109710542B (zh) 2021-03-16

Family

ID=66259384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811631948.1A Active CN109710542B (zh) 2018-12-28 2018-12-28 一种满n叉树构建方法及装置

Country Status (1)

Country Link
CN (1) CN109710542B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10990323B2 (en) * 2019-05-28 2021-04-27 Silicon Motion, Inc. Flash memory controller, memory device and method for accessing flash memory module
CN111932011B (zh) * 2020-08-10 2024-05-24 南宁市永恒影像有限公司 基于二元组块树的矩形优化排样方法及装置
CN111932009B (zh) * 2020-08-10 2024-05-21 南宁市永恒影像有限公司 矩形优化排样方法及装置
CN115834062B (zh) * 2023-02-20 2023-04-25 浙江奥鑫云科技有限公司 一种用于数据托管服务的企业数据传输加密方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012870A (zh) * 2010-11-18 2011-04-13 清华大学 内存分配方法
CN102880507A (zh) * 2012-09-12 2013-01-16 科立讯通信股份有限公司 一种链式结构消息申请及分发的方法
CN103559323A (zh) * 2013-11-22 2014-02-05 盛杰 数据库实现方法
CN106547603A (zh) * 2015-09-23 2017-03-29 北京奇虎科技有限公司 减少golang语言***垃圾回收时间的方法和装置
CN107229429A (zh) * 2017-06-27 2017-10-03 郑州云海信息技术有限公司 一种存储空间管理方法及装置
CN108628753A (zh) * 2017-03-24 2018-10-09 华为技术有限公司 内存空间管理方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139765B1 (en) * 2000-04-03 2006-11-21 Alan Balkany Hierarchical method for storing data with improved compression
CN100468402C (zh) * 2005-10-26 2009-03-11 腾讯科技(深圳)有限公司 一种数据存储及查询方法
CN102521334B (zh) * 2011-12-07 2014-03-12 广东工业大学 一种基于分类特性和平衡二叉树的数据存储、查询方法
US10416890B2 (en) * 2015-09-09 2019-09-17 Intel Corporation Application execution enclave memory page cache management method and apparatus
CN105512229B (zh) * 2015-11-30 2019-02-22 北京奇艺世纪科技有限公司 一种ip地址的地域信息的存储、查询方法及装置
CN107797941B (zh) * 2016-09-06 2020-07-07 华为技术有限公司 针对查找树的缓存着色内存分配方法和装置
CN107180092B (zh) * 2017-05-15 2020-10-23 中国科学院上海微***与信息技术研究所 一种文件***的控制方法、装置及终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012870A (zh) * 2010-11-18 2011-04-13 清华大学 内存分配方法
CN102880507A (zh) * 2012-09-12 2013-01-16 科立讯通信股份有限公司 一种链式结构消息申请及分发的方法
CN103559323A (zh) * 2013-11-22 2014-02-05 盛杰 数据库实现方法
CN106547603A (zh) * 2015-09-23 2017-03-29 北京奇虎科技有限公司 减少golang语言***垃圾回收时间的方法和装置
CN108628753A (zh) * 2017-03-24 2018-10-09 华为技术有限公司 内存空间管理方法和装置
CN107229429A (zh) * 2017-06-27 2017-10-03 郑州云海信息技术有限公司 一种存储空间管理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BitTorrent对等网文件共享***关键技术研究;俞嘉地;《中国优秀硕士学位论文全文数据库 信息科技辑》;20070415;I138-15 *

Also Published As

Publication number Publication date
CN109710542A (zh) 2019-05-03

Similar Documents

Publication Publication Date Title
CN109710542B (zh) 一种满n叉树构建方法及装置
Manzoor et al. Fast memory-efficient anomaly detection in streaming heterogeneous graphs
US9805140B2 (en) Striping of directed graphs and nodes with improved functionality
KR20100013257A (ko) 멀티 프로세서 시스템 상에서 데이터 세트를 분할 및 정렬하는 방법 및 장치
AU2017268599B2 (en) Method, device, server and storage medium of searching a group based on social network
CN112074818A (zh) 用于能够在区块链网络中访问过去的交易的方法及节点
CN108804383B (zh) 基于度量空间的支撑点并行枚举方法及装置
CN104281664A (zh) 分布式图计算***数据切分方法和***
JP2015076093A (ja) 動的な頂点−プロセッサのマッピングを用いた、2部グラフ上での並列検索を向上させるためのシステムおよび方法
CN105677755A (zh) 一种处理图数据的方法及装置
US20140282504A1 (en) Method and system for specifying the layout of computer system resources
CN110555014B (zh) 一种数据迁移方法和***、电子设备、存储介质
CN113835823A (zh) 资源调度方法和装置、电子设备、计算机可读存储介质
CN111400301B (zh) 一种数据查询方法、装置及设备
CN113868434A (zh) 图数据库的数据处理方法、设备和存储介质
CN110532528B (zh) 基于随机游走的书籍相似度计算方法及电子设备
CN104050189B (zh) 页面共享处理方法及装置
CN111049750B (zh) 一种报文转发方法、***及设备
CN112069175A (zh) 数据查询的方法、装置及电子设备
CN104537016B (zh) 一种确定文件所在分区的方法及装置
CN111008873A (zh) 一种用户确定方法、装置、电子设备及存储介质
CN110928902A (zh) 针对分页获取云平台终端数据的查询方法和***
CN108073583B (zh) 一种分图方法及装置
CN108520025B (zh) 一种服务节点确定方法、装置、设备及介质
CN114064706A (zh) 数据存储方法、装置及服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant