CN104462328B - 一种基于哈希表与双循环链表的混合数据管理方法及装置 - Google Patents

一种基于哈希表与双循环链表的混合数据管理方法及装置 Download PDF

Info

Publication number
CN104462328B
CN104462328B CN201410723293.6A CN201410723293A CN104462328B CN 104462328 B CN104462328 B CN 104462328B CN 201410723293 A CN201410723293 A CN 201410723293A CN 104462328 B CN104462328 B CN 104462328B
Authority
CN
China
Prior art keywords
data
linked list
dual
hash table
back end
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
CN201410723293.6A
Other languages
English (en)
Other versions
CN104462328A (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.)
Shenzhen Bureau of Polytron Technologies Inc
Original Assignee
SHENZHEN ZHONGKE XUNLIAN 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 SHENZHEN ZHONGKE XUNLIAN TECHNOLOGY Co Ltd filed Critical SHENZHEN ZHONGKE XUNLIAN TECHNOLOGY Co Ltd
Priority to CN201410723293.6A priority Critical patent/CN104462328B/zh
Publication of CN104462328A publication Critical patent/CN104462328A/zh
Application granted granted Critical
Publication of CN104462328B publication Critical patent/CN104462328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用于计算机数据管理技术领域,提供了一种基于哈希表与双循环链表的混合数据管理方法及装置,所述方法包括:建立与预设参数类型相同数量个哈希表和一双循环链表,并设定每个哈希表的关键码值,所述关键码值与所述预设参数类型一一对应;建立包括所有哈希表及双循环链表的数据结构;通过文件、***设备或无线通讯模块获取混合数据,将所述混合数据以所述数据结构构建若干个数据节点;将若干个数据节点保存至双循环链表,并将若干个数据节点的链表指针通过哈希表连接,本发明,通过高效的内存地址操作方法来进行混合数据的管理,无需数据内容之间的复制与交换,也能避开双循环链表查找数据效率低下的缺点,提高了数据查找效率。

Description

一种基于哈希表与双循环链表的混合数据管理方法及装置
技术领域
本发明属于计算机数据管理技术领域,尤其涉及一种基于哈希表与双循环链表的混合数据管理方法及装置。
背景技术
随着文明的进步,科学技术的发展,各种各样的电子设备融入了我们的生活,也使其成为我们生活不可缺少的一部分,给我们生活带来了巨大的便利。特别是大数据的今天,在有限的硬件资源情况下如何有效的管理数据,成为迫切的需求。
在内存数据存储管理中,采用哈希表有利于数据查找,但是对于数据的排序,是无能为力的,采用双循环链表,有利于数据的排序,但是对于数据的查找效率是相当低下的。综上所述,现有内存数据管理方法不能同时高效处理数据排序和查询。
发明内容
本发明实施例提供了一种基于哈希表与双循环链表的混合数据管理方法及装置,旨在解决现有内存数据管理方法不能同时高效处理数据排序和查询的问题。
一方面,提供一种基于哈希表与双循环链表的混合数据管理方法,所述方法包括:
建立与预设参数类型相同数量个哈希表和一双循环链表,并设定每个哈希表的关键码值,所述关键码值与所述预设参数类型一一对应;
建立包括所有哈希表及双循环链表的数据结构;
通过文件、***设备或无线通讯模块获取混合数据,将所述混合数据以所述数据结构构建若干个数据节点;
将若干个数据节点保存至双循环链表,并将若干个数据节点的链表指针通过哈希表连接。
另一方面,提供一种基于哈希表与双循环链表的混合数据管理装置,所述装置包括:
第一建立单元,用于建立与预设参数类型相同数量个哈希表和一双循环链表,并设定每个哈希表的关键码值,所述关键码值与所述预设参数类型一一对应;
第二建立单元,用于建立包括所有哈希表及双循环链表的数据结构;
数据赋值单元,用于通过文件、***设备或无线通讯模块获取混合数据,将所述混合数据以所述数据结构构建若干个数据节点;
数据存储单元,用于将若干个数据节点保存至双循环链表,并将若干个数据节点的链表指针通过哈希表连接。
在本发明实施例,建立与预设参数类型相同数量个哈希表和一双循环链表,并设定每个哈希表的关键码值,所述关键码值与所述预设参数类型一一对应;建立包括所有哈希表及双循环链表的数据结构;通过文件、***设备或无线通讯模块获取混合数据,将所述混合数据以所述数据结构构建若干个数据节点;将若干个数据节点保存至双循环链表,并将若干个数据节点的链表指针通过哈希表连接,本发明,通过高效的内存地址操作方法来进行混合数据的管理,无需数据内容之间的复制与交换,也能避开双循环链表查找数据效率低下的缺点,提高了数据查找效率。
附图说明
图1是本发明实施例一提供的基于哈希表与双循环链表的混合数据管理方法的实现流程图;
图2是本发明实施例一提供的数据结构的示意图;
图3是本发明实施例二提供的基于哈希表与双循环链表的混合数据管理装置的具体结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,建立与预设参数类型相同数量个哈希表和一双循环链表,并设定每个哈希表的关键码值,所述关键码值与所述预设参数类型一一对应;建立包括所有哈希表及双循环链表的数据结构;通过文件、***设备或无线通讯模块获取混合数据,将所述混合数据以所述数据结构构建若干个数据节点;将若干个数据节点保存至双循环链表,并将若干个数据节点的链表指针通过哈希表连接。
以下结合具体实施例对本发明的实现进行详细描述:
实施例一
图1示出了本发明实施例一提供的基于哈希表与双循环链表的混合数据管理方法的实现流程,详述如下:
在步骤S101中,建立与预设参数类型相同数量个哈希表和一双循环链表,并设定每个哈希表的关键码值,所述关键码值与所述预设参数类型一一对应。
在本实施例中,所述预设参数类型包括了所有可能查询参数的不同数据类型,如文件中读取的、外部设备采集的、网络通讯模块接收的,如果查找参数有很多种,就建立多个相关的哈希表。建立与预设参数类型相同数量个哈希表和一双循环链表,初始化好哈希表与双循环链表头结点,按照数据需求设立好哈希表的关键码值,设定好每个查找参数的关键码值。
在步骤S102中,建立包括所有哈希表及双循环链表的数据结构。
在本实施例中,所述数据结构包括所有哈希表分别对应的若干个变量和双循环链表对应的变量,具体如图2所示,双循环链表对应的变量包括双链表的前向指针*prev、双链表的后向指针*next和数据内容,所有哈希表分别对应的若干个变量N*next_n,其中n大于等于1。
在步骤S103中,通过文件、***设备或无线通讯模块获取混合数据,将所述混合数据以所述数据结构构建若干个数据节点。
在本实施例中,所述混合数据具体为通过文件、***设备或无线通讯模块获取的包括多种类型的数据。从文件中读取、外部采集或其他方式获取的混合数据,并将混合数据注意填入到建立好的数据结构中构建若干个数据节点。
在步骤S104中,将若干个数据节点保存至双循环链表,并将若干个数据节点的链表指针通过哈希表连接。
在本实施例中,将若干个数据节点保存至双循环链表,并将若干个数据节点的链表指针通过哈希表连接,即内存中只保存一次数据。
作为一个优选方案,所述方法还包括:接收关联查询参数的查询指令,按照与所述查询参数匹配的预设参数类型对应的关键码值进行相应的数据查询。其中,通过构建各个哈希表的查找函数,根据不同的查询参数,构建不同的查找函数,进行高效地查询。
作为另一个优选方案,所述方法还包括:接收排序指令,按照双循环链表遍历,如果需要调整排序,则对换两者的双链表指针数据。其中,通过构建双循环链表的排序函数,排序函数中如若两个节点需交换位置,则只需改变他们双链表指针数据,无需交换数据内容,若有多种排序参数,则需构建多种排序函数,排序过程中无需复制数据,则可节省大量的CPU时间。
另外,所述方法还包括以下三种可行方案:
第一种可行方案是,接收携带新数据的增加指令,将新数据以所述数据结构构建新的数据节点,将新的数据节点添加至双循环链表,并将新的数据节点的链表指针保存至哈希表。其中,通过构建数据节点增添节点函数,需要将新数据一一添加双循环链表中,将新数据的链表指针保存到哈希表。
第二种可行方案是,接收关联删除数据的删除指令,将双循环链表和哈希表中指向所述删除数据的节点指针地址修改为所述删除数据的下一个数据节点或上一个数据节点。其中,构建数据删除函数,需要将哈希表和双循环链表中指向该数据节点的指针地址更改为该数据的下一个数据或上一个数据的地址。
第三种可行方案是,接收关联修改数据的修改指令,索引所述修改数据对应的哈希表,找出对应的数据节点并以修改数据进行修改。其中,通过构建修改数据函数,根据传入的数据节点查找修改参数,索引对应的哈希表,找出该数据节点,然后即可修改。
本实施例,通过高效的内存地址操作方法来进行混合数据的管理,无需数据内容之间的复制与交换,也能避开双循环链表查找数据效率低下的缺点,提高了数据查找效率。
实施例二
图3示出了本发明实施例二提供的基于哈希表与双循环链表的混合数据管理装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,该基于哈希表与双循环链表的混合数据管理装置包括:第一建立单元31、第二建立单元32、数据赋值单元33、数据存储单元34、数据查询单元35、数据排序单元36、数据增加单元37、数据删除单元38和数据修改单元39。
其中,第一建立单元31,用于建立与预设参数类型相同数量个哈希表和一双循环链表,并设定每个哈希表的关键码值,所述关键码值与所述预设参数类型一一对应;
第二建立单元32,用于建立包括所有哈希表及双循环链表的数据结构;
数据赋值单元33,用于通过文件、***设备或无线通讯模块获取混合数据,将所述混合数据以所述数据结构构建若干个数据节点;
数据存储单元34,用于将若干个数据节点保存至双循环链表,并将若干个数据节点的链表指针通过哈希表连接。
进一步地,所述方法还包括:
数据查询单元35,用于接收关联查询参数的查询指令,按照与所述查询参数匹配的预设参数类型对应的关键码值进行相应的数据查询。
进一步地,所述方法还包括:
数据排序单元36,用于接收排序指令,按照双循环链表遍历,如果需要调整排序,则对换两者的双链表指针数据。
进一步地,所述方法还包括:
数据增加单元37,用于接收携带新数据的增加指令,将新数据以所述数据结构构建新的数据节点,将新的数据节点添加至双循环链表,并将新的数据节点的链表指针保存至哈希表;
数据删除单元38,用于接收关联删除数据的删除指令,将双循环链表和哈希表中指向所述删除数据的节点指针地址修改为所述删除数据的下一个数据节点或上一个数据节点;
数据修改单元39,用于接收关联修改数据的修改指令,索引所述修改数据对应的哈希表,找出对应的数据节点并以修改数据进行修改。
本发明实施例提供的基于哈希表与双循环链表的混合数据管理装置可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。
值得注意的是,上述***实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于哈希表与双循环链表的混合数据管理方法,其特征在于,包括:
建立与预设参数类型相同数量个哈希表和一双循环链表,并设定每个哈希表的关键码值,所述关键码值与所述预设参数类型一一对应:其中,所述预设参数类型包括所有可能查询参数的不同数据类型,如果查找参数有很多种,就建立多个相关的哈希表;
建立包括所有哈希表及双循环链表的数据结构,所述数据结构包括所有哈希表分别对应的若干个变量和双循环链表对应的变量,所述双循环链表对应的变量包括双链表的前向指针*prev、双链表的后向指针*next和数据内容;
通过文件、***设备或无线通讯模块获取混合数据,将所述混合数据以所述数据结构构建若干个数据节点;
将若干个数据节点保存至双循环链表,并将若干个数据节点的链表指针通过哈希表连接。
2.如权利要求1所述的基于哈希表与双循环链表的混合数据管理方法,其特征在于,还包括:
接收关联查询参数的查询指令,按照与所述查询参数匹配的预设参数类型对应的关键码值进行相应的数据查询。
3.如权利要求1或2所述的基于哈希表与双循环链表的混合数据管理方法,其特征在于,还包括:
接收排序指令,按照双循环链表遍历,如果需要调整排序,则对换两者的双链表指针数据。
4.如权利要求3所述的基于哈希表与双循环链表的混合数据管理方法,其特征在于,还包括:
接收携带新数据的增加指令,将新数据以所述数据结构构建新的数据节点,将新的数据节点添加至双循环链表,并将新的数据节点的链表指针保存至哈希表。
5.如权利要求3所述的基于哈希表与双循环链表的混合数据管理方法,其特征在于,还包括:
接收关联删除数据的删除指令,将双循环链表和哈希表中指向所述删除数据的节点指针地址修改为所述删除数据的下一个数据节点或上一个数据节点。
6.如权利要求3所述的基于哈希表与双循环链表的混合数据管理方法,其特征在于,还包括:
接收关联修改数据的修改指令,索引所述修改数据对应的哈希表,找出对应的数据节点并以修改数据进行修改。
7.一种基于哈希表与双循环链表的混合数据管理装置,其特征在于,所述装置包括:
第一建立单元,用于建立与预设参数类型相同数量个哈希表和一双循环链表,并设定每个哈希表的关键码值,所述关键码值与所述预设参数类型一一对应:其中,所述预设参数类型包括所有可能查询参数的不同数据类型,如果查找参数有很多种,就建立多个相关的哈希表;
第二建立单元,用于建立包括所有哈希表及双循环链表的数据结构,所述数据结构包括所有哈希表分别对应的若干个变量和双循环链表对应的变量,所述双循环链表对应的变量包括双链表的前向指针*prev、双链表的后向指针*next和数据内容;
数据赋值单元,用于通过文件、***设备或无线通讯模块获取混合数据,将所述混合数据以所述数据结构构建若干个数据节点;
数据存储单元,用于将若干个数据节点保存至双循环链表,并将若干个数据节点的链表指针通过哈希表连接。
8.如权利要求7所述的基于哈希表与双循环链表的混合数据管理装置,其特征在于,还包括:
数据查询单元,用于接收关联查询参数的查询指令,按照与所述查询参数匹配的预设参数类型对应的关键码值进行相应的数据查询。
9.如权利要求7或8所述的基于哈希表与双循环链表的混合数据管理装置,其特征在于,还包括:
数据排序单元,用于接收排序指令,按照双循环链表遍历,如果需要调整排序,则对换两者的双链表指针数据。
10.如权利要求9所述的基于哈希表与双循环链表的混合数据管理装置,其特征在于,还包括:
数据增加单元,用于接收携带新数据的增加指令,将新数据以所述数据结构构建新的数据节点,将新的数据节点添加至双循环链表,并将新的数据节点的链表指针保存至哈希表;
数据删除单元,用于接收关联删除数据的删除指令,将双循环链表和哈希表中指向所述删除数据的节点指针地址修改为所述删除数据的下一个数据节点或上一个数据节点;
数据修改单元,用于接收关联修改数据的修改指令,索引所述修改数据对应的哈希表,找出对应的数据节点并以修改数据进行修改。
CN201410723293.6A 2014-12-02 2014-12-02 一种基于哈希表与双循环链表的混合数据管理方法及装置 Active CN104462328B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410723293.6A CN104462328B (zh) 2014-12-02 2014-12-02 一种基于哈希表与双循环链表的混合数据管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410723293.6A CN104462328B (zh) 2014-12-02 2014-12-02 一种基于哈希表与双循环链表的混合数据管理方法及装置

Publications (2)

Publication Number Publication Date
CN104462328A CN104462328A (zh) 2015-03-25
CN104462328B true CN104462328B (zh) 2018-07-31

Family

ID=52908363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410723293.6A Active CN104462328B (zh) 2014-12-02 2014-12-02 一种基于哈希表与双循环链表的混合数据管理方法及装置

Country Status (1)

Country Link
CN (1) CN104462328B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899156B (zh) * 2015-05-07 2017-11-14 中国科学院信息工程研究所 一种面向大规模社交网络的图数据存储及查询方法
CN105468375B (zh) * 2015-11-30 2019-03-05 扬州大学 一种面向面结构光点云数据的对应点搜索结构的构建方法
CN105553695B (zh) * 2015-12-08 2018-08-24 南阳理工学院 一种基于两级双向哈希链表的ip数据流管理方法
CN105353994B (zh) * 2015-12-11 2019-10-22 上海斐讯数据通信技术有限公司 三维结构的数据存储方法及装置、查询方法及装置
CN107766445B (zh) * 2017-09-23 2021-06-01 湖南胜云光电科技有限公司 一种支持多维度检索的高效快速数据检索方法
CN110109894B (zh) * 2019-03-22 2021-08-20 新奥特(北京)视频技术有限公司 非关系型数据库的实现方法、装置、存储介质和设备
CN110688380B (zh) * 2019-09-24 2023-02-03 无锡科技职业学院 适用于存储空间受限的设备的通讯录防重构建方法
CN112860684A (zh) * 2019-11-12 2021-05-28 阿里巴巴集团控股有限公司 数据访问方法、装置、设备及存储介质
CN111090784A (zh) * 2019-12-30 2020-05-01 武汉轻工大学 基于双链表的数据排序方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314485A (zh) * 2011-07-27 2012-01-11 中国科学院计算机网络信息中心 哈希表添加、查找和删除方法及装置
CN103092767A (zh) * 2013-01-25 2013-05-08 浪潮电子信息产业股份有限公司 一种对云计算内部物理机信息内存池的管理方法
CN103544259A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 分组聚集排序TopK查询处理方法及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070233720A1 (en) * 2006-04-04 2007-10-04 Inha-Industry Partnership Institute Lazy bulk insertion method for moving object indexing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314485A (zh) * 2011-07-27 2012-01-11 中国科学院计算机网络信息中心 哈希表添加、查找和删除方法及装置
CN103092767A (zh) * 2013-01-25 2013-05-08 浪潮电子信息产业股份有限公司 一种对云计算内部物理机信息内存池的管理方法
CN103544259A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 分组聚集排序TopK查询处理方法及***

Also Published As

Publication number Publication date
CN104462328A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
CN104462328B (zh) 一种基于哈希表与双循环链表的混合数据管理方法及装置
Demertzis et al. Dynamic searchable encryption with small client storage
Naveed The fallacy of composition of oblivious ram and searchable encryption
Kamara et al. Parallel and dynamic searchable symmetric encryption
Gao et al. Relational approach for shortest path discovery over large graphs
CN102945249B (zh) 一种策略规则匹配查询树生成方法、匹配方法及装置
CN104794177B (zh) 一种数据存储方法及装置
CN104580027A (zh) 一种OpenFlow报文转发方法及设备
CN105515997B (zh) 基于bf_tcam实现零范围扩张的高效范围匹配方法
CN104539502B (zh) 一种自定义添加modbus设备的方法
CN103856462B (zh) 一种会话的管理方法及***
CN102880739A (zh) 一种基于邻接表的网络最小路集确定方法
Liang et al. Mid-model design used in model transition and data migration between relational databases and nosql databases
CN105119834A (zh) 一种基于复合trie树结构的源地址目的地址联合查找方法
Li et al. Efficient subspace skyline query based on user preference using MapReduce
Zhou et al. Efficient approaches to k representative g-skyline queries
CN107085594A (zh) 大图数据库中基于集合相似度的子图匹配方法
CN100488173C (zh) 对流分类算法进行自动选择的方法
Khoury et al. Corona: Energy-efficient multi-query processing in wireless sensor networks
CN103457855A (zh) 无类域间路由表建立、以及报文转发的方法和装置
Liu et al. Distributed incomplete pattern matching via a novel weighted bloom filter
CN105357334B (zh) 一种基于ipv6地址划分的ipv6地址存储及快速查询方法
CN103686668A (zh) 数据更新方法、***和设备
CN110413724A (zh) 一种数据检索方法和装置
CN104820661A (zh) 一种基于业务对象的探索式数据分析***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 518055 1407 floor, 14 floor, Fuguang business building, 1 Nanshan District Road, Taoyuan, Shenzhen, Guangdong

Patentee after: Shenzhen Bureau of Polytron Technologies Inc

Address before: 301, building six, building B, No.1 building, No.1 Industrial Road, Nanshan District, Guangdong, Shenzhen, 518067

Patentee before: Shenzhen Zhongke Xunlian Technology Co., Ltd

CP03 Change of name, title or address