CN112035380A - 一种数据处理方法、装置、设备及可读存储介质 - Google Patents
一种数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN112035380A CN112035380A CN202011026507.6A CN202011026507A CN112035380A CN 112035380 A CN112035380 A CN 112035380A CN 202011026507 A CN202011026507 A CN 202011026507A CN 112035380 A CN112035380 A CN 112035380A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- address
- linked list
- nodes
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 238000000034 method Methods 0.000 abstract description 21
- 230000008901 benefit Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 229920006395 saturated elastomer Polymers 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法、装置、设备及可读存储介质,该方法包括:访问线性链表中的地址节点,获得线性链表中的目标数据节点的节点地址;其中,线性链表包括地址节点和数据节点,地址节点存储各个数据节点的节点地址,数据节点存储数据内容;利用节点地址对目标数据节点进行访问,得到目标数据。在本方法中,提出了一种线性链表包括用于存储节点地址的地址节点,用于存储数据的数据节点。由于该线性链表不要求各个数据节点之间地址连续,即无需连续内存空间,且具有灵活扩展的特点;访问数据也无需遍历各个数据节点,而是直接从地址节点中获取节点地址,可加快访问速度,能够在保障内存利用率的情况下,提高数据处理效率。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种数据处理方法、装置、设备及可读存储介质。
背景技术
数据结构是算法的基础,那么数组和链表就是数据结构的基础。因为像堆,栈,树,图等比较复杂的数据结构基本上都可以由数组和链表来表示。
其中,数组具有访问速度快,但、内存要求高、无法扩展等特点;链表具有内存要求低、可灵活扩展,但访问速度慢等特点。因此,在实际应用中,可根据需求选择使用数组或链表即可。但是,对于数据量庞大、修改、访问等频繁的需求下,无论是基于数组还是链表均,难以实现高效率地数据处理。
综上所述,如何有效地提高数据处理效率等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种数据处理方法、装置、设备及可读存储介质,提出介于数组和链表之间的一种数据结构,以提高数据处理效率。
为解决上述技术问题,本发明提供如下技术方案:
一种数据处理方法,包括:
访问线性链表中的地址节点,获得所述线性链表中的目标数据节点的节点地址;其中,所述线性链表包括地址节点和数据节点,所述地址节点存储各个所述数据节点的节点地址,所述数据节点存储数据内容;
利用所述节点地址对所述目标数据节点进行访问,得到目标数据。
优选地,还包括:
向所述数据节点***新数据,并在所述地址节点中保存新数据地址。
优选地,向所述数据节点***新数据,包括:
判断数据是否处于饱和;
如果是,则利用链表扩展算法对所述线性链表的大小进行扩展,并将所述新数据***新数据节点;
如果否,则向所述数据节点***所述新数据。
优选地,所述访问线性链表中的地址节点,获得所述线性链表中的目标数据节点的节点地址,包括:
按照数组访问方式,对所述地址节点进行访问,获得所述节点地址;所述地址节点中的数据结构为数组类型。
优选地,所述访问线性链表中的地址节点,获得所述线性链表中的目标数据节点的节点地址,包括:
按照Map访问方式,对所述地址节点进行访问,获得所述节点地址;所述地址节点中的数据结构为Map类型。
优选地,还包括:
获取待存储的数据数量;
创建出与所述数据数量匹配的目标线性链表。
优选地,所述创建出与所述数据数量匹配的目标线性链表,包括:
创建与所述数据数量匹配的数据节点;
判断所述数据数量是否大于阈值;
如果是,则创建数据结构为Map类型的地址节点;
如果否,则创建数据结构为数组类型的地址节点。
一种数据处理装置,包括:
节点地址获取模块,用于访问线性链表中的地址节点,获得所述线性链表中的目标数据节点的节点地址;其中,所述线性链表包括地址节点和数据节点,所述地址节点存储各个所述数据节点的节点地址,所述数据节点存储数据内容;
数据访问模块,用于利用所述节点地址对所述目标数据节点进行访问,得到目标数据。
一种数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述数据处理方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据处理方法的步骤。
应用本发明实施例所提供的方法,访问线性链表中的地址节点,获得线性链表中的目标数据节点的节点地址;其中,线性链表包括地址节点和数据节点,地址节点存储各个数据节点的节点地址,数据节点存储数据内容;利用节点地址对目标数据节点进行访问,得到目标数据。
在本方法中,提出了一种新的线性链表,该线性链表包括地址节点和数据节点,其中,地址节点用于存储各个数据节点的节点地址,数据节点存储数据内容。具体的,在访问数据时,通过先访问地址节点,即可获得目标数据节点的节点地址,然后访问节点地址,即可访问目标数据节点,得到目标数据。由于该线性链表各个数据节点的节点地址均存储在地址节点,因而不要求各个数据节点之间地址连续,即无需连续内存空间,且具有灵活扩展的特点;访问数据也无需遍历各个数据节点,而是直接从地址节点中获取节点地址,可加快访问速度,能够在保障内存利用率的情况下,提高数据处理效率
相应地,本发明实施例还提供了与上述数据处理方法相对应的数据处理装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种数据处理方法的实施流程图;
图2为一种数组结构示意图;
图3为一种链表结构示意图;
图4为本发明实施例中一种目标线性链表示意图;
图5为本发明实施例中一种数据处理装置的结构示意图;
图6为本发明实施例中一种数据处理设备的结构示意图;
图7为本发明实施例中一种数据处理设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于理解本发明实施例所提供的数据处理方法,下面先从存储结构方便对数组和链表进行详细说明。
数组(Array)为有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。数组特点如下:
(1)、数组的长度是确定的。即存储时必须明确元素的个数。
(2)、数组一旦被创建,它的大小就是不可以改变的。
(3)、数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序必须连续存放在一起。
(4)、数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,如图2所示,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
综合数组的特点及存储结构,按照上述标准数组的定义中“内存连续性”,不难得出数组的优、缺点为以下几点:
(1)、访问快,复杂度为O(1)。
(2)、***和删除时的元素移动导致速度慢。
(3)、内存空间要求高,必须有足够的连续内存空间。
(4)、数组大小固定,不能动态拓展。
链表为一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。线性链表特点:
(1)、用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。
(2)、对数据元素来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即指示后继的存储位置),如指针。
(3)、要找某个数,必须要从头开始找,十分耗时。
参照图3,以及综合线性链表的特点及存储结构,链表的优、缺点如下:
(1)、***删除数据的速度快。
(2)、内存利用率高,不会浪费内存。
(3)、大小没有固定,可灵活拓展。
(4)、不能随机查找,必须从第一个开始遍历,查找效率低。
可见,数组和链表各有其优缺点,但在实际应用中,当前数据量较大时,修改访问频繁的情况下,数组和链表的缺点将会被放大,会严重影响数据处理效率。为了更好地进行数据处理,本发明实施例提供的一种数据处理方法,能够基于兼容数组和链表对应优点的新数据存储结构,满足多种应用场景需求。具体的,请参考图1,图1为本发明实施例中一种数据处理方法的流程图,该方法包括以下步骤:
S101、访问线性链表中的地址节点,获得线性链表中的目标数据节点的节点地址。
其中,线性链表包括地址节点和数据节点,地址节点存储各个数据节点的节点地址,数据节点存储数据内容。
需要说明的是,从数组的优点来看,它最大的特点:访问快,而访问快的原因:它的数据在内存地址是连续的,并且访问某一个数组元素时是通过数组下标访问的。举例说明,一个长度为5的int类型数组,假设计算机分配给该数组的首地址为1000,当访问角标为2的位置上的元素时,可以直接通过计算得出该元素对于的内存位置,即1000+2*4,其中1000是首地址,2代表了偏移量,4代表了每个元素所占内存的大小(int类型占4个字节)这样通过一次计算,就能直接找到数组中对应角标的位置了,这样就实现了高效率访问机制。
对于线性链表,它最大的特点:大小不固定,拓展灵活,内存利用率高,不会浪费内存;原因在于:除了首尾节点以外的其它节点既存有数据也存有下一个节点的地址,这样的好处就是可以在内存中占用不连续内存地址。并且当链表中的数据存满以后,链表会通过自身的算法重新排列组合链表中的数据并重新分配地址。但是,由于每个节点只能保存下一个节点的地址,当随机访问某个节点数据时只能从头开始遍历,直到找到该节点为止,这样的机制降低了访问效率。
基于此,在本发明实施例中提出了一种新型的数据存储结构,将数组的高效率访问机制与链表的拓展灵活等优点综合起来,并且保持着它们自身的优点。具体的,该线性链表包括地址节点和数据节点,地址节点存储各个数据节点的节点地址,数据节点存储数据内容。也就是说,该线性链表相对于现有链表,其区别在于:数据和节点地址进行了分开存储,地址节点专门用于存储各个数据节点的节点地址,而各个数据节点仅存储数据本身即可。如此,即可以保留链表的优点,也能具有数组的优点。
具体的,当需要访问数据时,可通过访问地址节点即可确定目标数据节点的节点地址。
地址节点即专门用于存储各个数据节点的节点地址的节点。该地址节点可以具体为线性链表中的任意一个节点,为了便于操作,建议优先选取线性链表中的首个节点作为地址节点。
在本发明实施例中,地址节点中保存节点地址的数据结构可以为数组类型也可以为Map类型。其中,Map为一种关联容器,存储相结合形成的一个关键值和映射值的元素,即key/value模式,即给定一个key,返回一个value,这里的key可以为数据节点ID,value即数据节点的节点地址。基于地址节点的数据结构不同,访问节点地址的方式也有所不同。具体的,访问地址节点的方式包括但不限于以下方式:
方式1:按照数组访问方式,对地址节点进行访问,获得节点地址;地址节点中的数据结构为数组类型。
即,若地址节点的数据结构为数组类型,则在访问地址节点时,需按照数组类型的访问方式进行。例如,当目标数据节点为第4个,则读取a[3]对应的数值,该数值即目标数据节点的节点地址。
方式2:按照Map访问方式,对地址节点进行访问,获得节点地址;地址节点中的数据结构为Map类型。
若地址节点中的数据结构为Map类型,则在访问地址节点时,需按照Map类型的访问方式进行。例如,当目标数据节点的ID为5,则输入key=5,得到对应的value,该value即对应该目标数据节点的节点地址。
S102、利用节点地址对目标数据节点进行访问,得到目标数据。
得到节点地址后,直接基于该节点地址对目标数据节点进行访问,便可访问目标数据节点中存储的数据。
需要说明的是,对应实施例所提供的线性链表,当需要对数据进行修改或删除节点时,可直接针对数据进行修改,对节点进行删除,若对节点有增删,则需在地址节点中调整对应的节点地址。
应用本发明实施例所提供的方法,访问线性链表中的地址节点,获得线性链表中的目标数据节点的节点地址;其中,线性链表包括地址节点和数据节点,地址节点存储各个数据节点的节点地址,数据节点存储数据内容;利用节点地址对目标数据节点进行访问,得到目标数据。
在本方法中,提出了一种新的线性链表,该线性链表包括地址节点和数据节点,其中,地址节点用于存储各个数据节点的节点地址,数据节点存储数据内容。具体的,在访问数据时,通过先访问地址节点,即可获得目标数据节点的节点地址,然后访问节点地址,即可访问目标数据节点,得到目标数据。由于该线性链表各个数据节点的节点地址均存储在地址节点,因而不要求各个数据节点之间地址连续,即无需连续内存空间,且具有灵活扩展的特点;访问数据也无需遍历各个数据节点,而是直接从地址节点中获取节点地址,可加快访问速度,能够在保障内存利用率的情况下,提高数据处理效率
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
在本发明的一种具体实施例方式中,在上述实施例的基础上,当需要***数据时,可向数据节点***新数据,并在地址节点中保存新数据地址。具体来说,当有新数据***,即需要对数据节点进行数据写入,还需在地址节点中写入该新数据地址,即写入了新数据的节点地址。
进一步地,由于本发明实施例所提供的线性链表中的数据节点可以连续也可以不连续,因此可实现自由扩展。具体的实现过程,包括:
步骤一、判断数据是否处于饱和。
判断数据是否饱和,即确定线性链表中的各个数据节点是否已写入了数据,如果都已写入,则确定数据处于饱和;反之,则未饱和。
步骤二、如果是,则利用链表扩展算法对线性链表的大小进行扩展,并将新数据***新数据节点。
在定义存储结构大小的情况下,该数据结构处于饱和时不会进行动态扩展;在不定义存储结构大小的情况下,默认存储地址节点的结构为数组,当该存储结构内的数据达到阈值时,存储地址节点结构会转化为map结构,同时对当前数据中的地址进行同步,从而实现动态扩展。
对线性链表的大小进行扩展,即为线性链表申请更多的数据节点。对应如何申请数据节点,可具体参见链表的自由扩展的实现方案,在此不再一一赘述。
在对线性链表进行扩展后,便可将新数据***到扩展后得到的新数据节点中。特别地,在***新数据到新数据节点的同时,也需将新数据节点的节点地址存入地址节点中。
举例说明:在地址节点的存储结构内部可设置一个阈值,比如为200。当定义存储结构大小大于等于200时,默认存储地址节点的数据结构之间为map。小于200时,为数组结构。也即,若定义为大小固定的存储结构,便不会动态扩展,存储地址的结构也不会发生改变;若定义为大小不固定的存储结构,则可动态扩展。
步骤三、如果否,则向数据节点***新数据。
如果数据未饱和,则直接将新数据***到数据节点中。特别地,在***新数据到数据节点的同时,也需将数据节点的节点地址存入地址节点中。
在本发明的一种具体实施方式中,还可根据数据数量的情况,创建上述实施例所提供的线性链表。具体创建实现过程,包括:
步骤一、获取待存储的数据数量。
当用户需要创建线性链表时,可通过输入设备设置需存储的数据数量。即,可通过获取输入设备输入的具体数值的方式,得到数据数量。当然该数据数量也可为其他上层应用传递而得。
步骤二、创建出与数据数量匹配的目标线性链表。
一般来说,一个数据节点存储一个数据,因此,可创建出与数据数量相同的数据节点数量。对于地址节点,可根据数据数量的大小,确定地址节点的大小。例如,存储一个节点地址需要a字节,而数据数量具体为b,则地址节点的大小至少为a和b的乘积。
在本发明的一种具体实施方式中,考虑到地址节点中的节点地址的数据存储结构会对节点地址获取效率、内存大小等有影响,因此,对于链表创建过程,可包括:
步骤1、创建与数据数量匹配的数据节点。
步骤2、判断数据数量是否大于阈值。
步骤3、如果是,则创建数据结构为Map类型的地址节点。
步骤4、如果否,则创建数据结构为数组类型的地址节点。
为便于描述,下面将上述4个步骤结合起来进行说明。
首先创建出与数据数量匹配的数据节点,然后在数据数量大于阈值的情况下,选择Map类型作为地址节点的数据结构;在数据数量不大于阈值的情况下,选择数组类型作为地址节点的数据结构。
其中,该阈值可以根据实际应用需求进行设置,该值可具体为数组和链表优缺点有明显提醒的值。例如,超过该值(如200,当然也可以为其他数值),Map类型更具有优势,不超过该值,数组类型更具有优势。如此,访问地址节点,可以高效地拿到数据节点地址,然后通过数据节点地址去获取信息/数据。
例如,在数据类型为Map类型,则所创建的目标线性链表的整体结构可参考图4。在图4中,左侧部分对应地址节点,右侧部分对应数据节点。
相应于上面的方法实施例,本发明实施例还提供了一种数据处理装置,下文描述的数据处理装置与上文描述的数据处理方法可相互对应参照。
参见图5所示,该装置包括以下模块:
节点地址获取模块100,用于访问线性链表中的地址节点,获得线性链表中的目标数据节点的节点地址;其中,线性链表包括地址节点和数据节点,地址节点存储各个数据节点的节点地址,数据节点存储数据内容;
数据访问模块200,用于利用节点地址对目标数据节点进行访问。
应用本发明实施例所提供的装置,访问线性链表中的地址节点,获得线性链表中的目标数据节点的节点地址;其中,线性链表包括地址节点和数据节点,地址节点存储各个数据节点的节点地址,数据节点存储数据内容;利用节点地址对目标数据节点进行访问,得到目标数据。
在本装置中,提出了一种新的线性链表,该线性链表包括地址节点和数据节点,其中,地址节点用于存储各个数据节点的节点地址,数据节点存储数据内容。具体的,在访问数据时,通过先访问地址节点,即可获得目标数据节点的节点地址,然后访问节点地址,即可访问目标数据节点,得到目标数据。由于该线性链表各个数据节点的节点地址均存储在地址节点,因而不要求各个数据节点之间地址连续,即无需连续内存空间,且具有灵活扩展的特点;访问数据也无需遍历各个数据节点,而是直接从地址节点中获取节点地址,可加快访问速度,能够在保障内存利用率的情况下,提高数据处理效率
在本发明的一种具体实施方式中,还包括:
数据***模块,用于向数据节点***新数据,并在地址节点中保存新数据地址。
在本发明的一种具体实施方式中,数据***模块,具体用于判断数据是否处于饱和;如果是,则利用链表扩展算法对线性链表的大小进行扩展,并将新数据***新数据节点;如果否,则向数据节点***新数据。
在本发明的一种具体实施方式中,节点地址获取模块100,具体用于按照数组访问方式,对地址节点进行访问,获得节点地址;地址节点中的数据结构为数组类型。
在本发明的一种具体实施方式中,节点地址获取模块100,具体用于按照Map访问方式,对地址节点进行访问,获得节点地址;地址节点中的数据结构为Map类型。
在本发明的一种具体实施方式中,还包括:
链表创建模块,用于获取待存储的数据数量;创建出与数据数量匹配的目标线性链表。
在本发明的一种具体实施方式中,链表创建模块,具体用于创建与数据数量匹配的数据节点;判断数据数量是否大于阈值;如果是,则创建数据结构为Map类型的地址节点;如果否,则创建数据结构为数组类型的地址节点。
相应于上面的方法实施例,本发明实施例还提供了一种数据处理设备,下文描述的一种数据处理设备与上文描述的一种数据处理方法可相互对应参照。
参见图6所示,该数据处理设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的数据处理方法的步骤。
具体的,请参考图7,图7为本实施例提供的一种数据处理设备的具体结构示意图,该数据处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在数据处理设备301上执行存储器332中的一系列指令操作。
数据处理设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作***341。
上文所描述的数据处理方法中的步骤可以由数据处理设备的结构实现。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种数据处理方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据处理方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
访问线性链表中的地址节点,获得所述线性链表中的目标数据节点的节点地址;其中,所述线性链表包括地址节点和数据节点,所述地址节点存储各个所述数据节点的节点地址,所述数据节点存储数据内容;
利用所述节点地址对所述目标数据节点进行访问,得到目标数据。
2.根据权利要求1所述的数据处理方法,其特征在于,还包括:
向所述数据节点***新数据,并在所述地址节点中保存新数据地址。
3.根据权利要求2所述的数据处理方法,其特征在于,向所述数据节点***新数据,包括:
判断数据是否处于饱和;
如果是,则利用链表扩展算法对所述线性链表的大小进行扩展,并将所述新数据***新数据节点;
如果否,则向所述数据节点***所述新数据。
4.根据权利要求1所述的数据处理方法,其特征在于,所述访问线性链表中的地址节点,获得所述线性链表中的目标数据节点的节点地址,包括:
按照数组访问方式,对所述地址节点进行访问,获得所述节点地址;所述地址节点中的数据结构为数组类型。
5.根据权利要求1所述的数据处理方法,其特征在于,所述访问线性链表中的地址节点,获得所述线性链表中的目标数据节点的节点地址,包括:
按照Map访问方式,对所述地址节点进行访问,获得所述节点地址;所述地址节点中的数据结构为Map类型。
6.根据权利要求1所述的数据处理方法,其特征在于,还包括:
获取待存储的数据数量;
创建出与所述数据数量匹配的目标线性链表。
7.根据权利要求6所述的数据处理方法,其特征在于,所述创建出与所述数据数量匹配的目标线性链表,包括:
创建与所述数据数量匹配的数据节点;
判断所述数据数量是否大于阈值;
如果是,则创建数据结构为Map类型的地址节点;
如果否,则创建数据结构为数组类型的地址节点。
8.一种数据处理装置,其特征在于,包括:
节点地址获取模块,用于访问线性链表中的地址节点,获得所述线性链表中的目标数据节点的节点地址;其中,所述线性链表包括地址节点和数据节点,所述地址节点存储各个所述数据节点的节点地址,所述数据节点存储数据内容;
数据访问模块,用于利用所述节点地址对所述目标数据节点进行访问,得到目标数据。
9.一种数据处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据处理方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011026507.6A CN112035380B (zh) | 2020-09-25 | 2020-09-25 | 一种数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011026507.6A CN112035380B (zh) | 2020-09-25 | 2020-09-25 | 一种数据处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035380A true CN112035380A (zh) | 2020-12-04 |
CN112035380B CN112035380B (zh) | 2023-02-28 |
Family
ID=73574437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011026507.6A Active CN112035380B (zh) | 2020-09-25 | 2020-09-25 | 一种数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035380B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961754A (zh) * | 2021-09-08 | 2022-01-21 | 南湖实验室 | 一种基于持久内存的图数据库*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107622020A (zh) * | 2017-09-06 | 2018-01-23 | 网宿科技股份有限公司 | 一种数据存储方法、访问方法及装置 |
CN111125447A (zh) * | 2019-12-22 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种元数据访问方法、装置、设备及可读存储介质 |
-
2020
- 2020-09-25 CN CN202011026507.6A patent/CN112035380B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107622020A (zh) * | 2017-09-06 | 2018-01-23 | 网宿科技股份有限公司 | 一种数据存储方法、访问方法及装置 |
CN111125447A (zh) * | 2019-12-22 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种元数据访问方法、装置、设备及可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961754A (zh) * | 2021-09-08 | 2022-01-21 | 南湖实验室 | 一种基于持久内存的图数据库*** |
Also Published As
Publication number | Publication date |
---|---|
CN112035380B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106570018B (zh) | 序列化与反序列化的方法、装置、***以及电子设备 | |
CN102508784B (zh) | 视频监控设备中闪存卡的数据存储方法及其*** | |
US9871727B2 (en) | Routing lookup method and device and method for constructing B-tree structure | |
US20100185822A1 (en) | Multi-reader multi-writer circular buffer memory | |
CN110109873B (zh) | 一种用于消息队列的文件管理方法 | |
CN102591787B (zh) | Java卡的数据处理方法及装置 | |
CN112035380B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN107451070B (zh) | 一种数据的处理方法和服务器 | |
US11327939B2 (en) | Method and device for indexing dirty data in storage system page | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
CN111522827A (zh) | 一种数据更新方法、装置和电子设备 | |
CN113986775B (zh) | 一种risc-v cpu验证中页表项生成方法、***及装置 | |
CN115964002A (zh) | 一种电能表终端档案管理方法、装置、设备及介质 | |
CN113741411B (zh) | 一种分散控制***全局变量点产物文件生成方法和*** | |
EP4134802A1 (en) | Method and apparatus for data access of nand flash file, and storage medium | |
CN111143006B (zh) | 命令帮助信息的获取方法及装置 | |
CN114238226A (zh) | 一种基于simd指令的nvm本地文件管理***及方法 | |
CN110377601B (zh) | 一种基于B树数据结构的MapReduce计算过程优化方法 | |
CN113360095A (zh) | 硬盘数据管理方法、装置、设备及介质 | |
CN108874468B (zh) | 应用程序的加载方法、装置、计算机设备及存储介质 | |
CN109760044A (zh) | 一种数据处理方法及装置 | |
CN112068948A (zh) | 数据散列方法、可读存储介质和电子设备 | |
CN114063917B (zh) | 快速读取程序数据的方法和微控制器 | |
CN118034612B (zh) | 一种数据处理方法、装置和存储介质 | |
JP2507399B2 (ja) | デ―タベ―ス装置 |
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 |