[发明专利]一种嵌入式哈希表及其操作方法、遍历方法和装置在审
申请号: | 202110341716.8 | 申请日: | 2021-03-30 |
公开(公告)号: | CN112948642A | 公开(公告)日: | 2021-06-11 |
发明(设计)人: | 任文龙;刘嵩义;温奎;罗勇 | 申请(专利权)人: | 四川九洲电器集团有限责任公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 唐邦英 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 哈希表 及其 操作方法 遍历 方法 装置 | ||
本发明公开了一种嵌入式哈希表及其操作方法、遍历方法和装置,嵌入式哈希表,包括链接法哈希表和包括双向链表;所述双向链表包括若干用于存储key键值的键值结点,所述链接法哈希表包括若干用于存储value数据的链接结点;各个键值结点之间均为双向连接,且每个键值结点与对应的链接结点之间为双向连接。本发明通过在现有链接法哈希表的基础上增加一个双向链表构成双层结构,且双向链表和链接法哈希表分别独立存储key键值和value数据,使得遍历操作不同于现有链接法哈希表,而是简化了逻辑,降低了代码复杂度,提高了哈希表遍历的效率,其遍历的算法复杂度为O(n),与数组遍历操作相同。
技术领域
本发明涉及数据存储技术领域,具体涉及一种嵌入式哈希表及其操作方法、遍历方法和装置。
背景技术
随着智能技术和物联网技术的快速发展,各种设备互联互通,嵌入式设备开始承担越来越多的功能,需要集成的模块越来越多,嵌入式软件开发的规模和复杂度也越来越高。一方面为了应对软件功能逻辑的高复杂度,许多在计算机领域比较成熟的数据结构和算法被直接使用在嵌入式设备中,如队列、链表和哈希表等;另一方面目前嵌入式OS(如FreeRTOS和DSP BIOS)无法直接支持一些常见的算法,需要用户自主实现,但嵌入式设备有限的计算能力和较小的内存资源限制了这些算法的应用及性能。
在嵌入式软件处理中,数组是最常用的数据结构,比较适合于处理有序的顺序数据。哈希表实现简单,查找速度快,常用于数据检索等方面。在无序的数据索引实现中,哈希表往往较数组有更大的灵活性和易于理解的表达形式。
现有的链接法哈希表如图1所示,链接结点由桶结点elem1~elemM和扩展结点node1~nodeN组成,k-v对的键值和数据存储在每个结点。通常情况下elem1~elemM是静态结点,node1~nodeN是动态结点。M的大小和哈希表的大小成正比,哈希表越大M值越大。N表示了哈希碰撞的次数,取决于散列函数的选用和k-v对的数量。
链接法的遍历过程是依次读取elem1~elemM结点和node1~nodeN结点中键值和数据。在哈希表较大而实际存储的k-v较少时效率低下。例如:在一个键值为正整数1-65535的无序索引场景下,散列函数使用简单的键值对M取余方法,为了减少哈希碰撞,链接法哈希表在设计时取M=500,假设有100个k-v存储在哈希表且无碰撞发生N=0,那么为了遍历哈希表的所有k-v对,需要依次读取500个结点的键值和数据并判断有效性。
发明内容
本发明的目的在于提供嵌入式哈希表及构建方法、遍历方法和遍历装置,以解决现有链接法哈希表遍历效率低的问题。
此外,本发明还提供基于上述嵌入式哈希表的构建方法、遍历方法和遍历装置。
本发明通过下述技术方案实现:
嵌入式哈希表,包括链接法哈希表,还包括双向链表;
所述双向链表包括若干用于存储key键值的键值结点,所述链接法哈希表包括若干用于存储value数据的链接结点;
各个键值结点之间均为双向连接,且每个键值结点与对应的链接结点之间为双向连接。
本申请的发明构思在于:
在现有链接法哈希表的基础上增加一个双向链表,双向链表中的键值结点用于存储key键值,链接法哈希表的链接结点用于存储value数据,且基于k-v映射关系建立各个键值结点之间的双向连接关系,以及每个键值结点与对应的链接结点之间的双向连接关系,及本发明中key键值和value数据为独立存储,在利用双向链表优先保证高效遍历的情况下采用键值和数据的独立存储节约了内存,有效扩大了哈希表在嵌入式软件中的适用场景。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川九洲电器集团有限责任公司,未经四川九洲电器集团有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110341716.8/2.html,转载请声明来源钻瓜专利网。