【技术实现步骤摘要】
本专利技术涉及一种支持多关键字快速访问方法和装置。
技术介绍
通常的嵌入式设备中,由于资源受限,数据结构往往只能采用最简单的链表或者数组进行数据缓存,在进行数据访问时,往往需要遍历所有数据,才能拿到所需要的数据,即使采用可以快速访问的数据结构,由于结构限制,往往只能通过单一关键字进行访问,造成访问效率较低。
技术实现思路
本专利技术要解决的技术问题之一,在于提供一种支持多关键字快速访问方法,针对所需的不同类型的关键字,有效解决嵌入式设备中,在资源受限的情况下进行多关键字的访问效率问题和资源问题。本专利技术是这样实现的:一种支持多关键字快速访问的方法,建立哈希表,使哈希表包括哈希表头、主数据节点组合、次关键字哈希与主关键字组合,所述主数据节点组合的键值为主关键字,数据为用户实际数据,所述次关键字哈希与主关键字组合的内容为次关键字的哈希值和主关键字,从而建立起次关键字与数据的映射;所述主数据节点组合包括多个主关键字链表,所述次关键字哈希与主关键字组合包括多个次关键字链表,所述主关键字链表和次关键字链表对应地链接在哈希表头节点上;所述方法中的访问数据分为主关键字访问数据的流程和次关键字访问数据的流程; 所述主关键字访问数据的流程包括: 步骤11、开始,调用哈希算法计算主关键字的哈希值; 步骤12、计算该哈希值在哈希表中的索引; 步骤13、遍历索引位置下的主关键字链表,查找是否存在与主关键字相等的数据记录,若是,返回数据,若否,则结束; 所述次关键字访问数据的流程包括: 步骤21、开始,调用哈希算法计算次关键字的哈希值, 步骤22、计算该哈希值在哈希表 ...
【技术保护点】
一种支持多关键字快速访问的方法,其特征在于:建立哈希表,使哈希表包括哈希表头、主数据节点组合、次关键字哈希与主关键字组合,所述主数据节点组合的键值为主关键字,数据为用户实际数据,所述次关键字哈希与主关键字组合的内容为次关键字的哈希值和主关键字,从而建立起次关键字与数据的映射;所述主数据节点组合包括多个主关键字链表,所述次关键字哈希与主关键字组合包括多个次关键字链表,所述主关键字链表和次关键字链表对应地链接在哈希表头节点上;?所述方法中的访问数据分为主关键字访问数据的流程和次关键字访问数据的流程;所述主关键字访问数据的流程包括:步骤11、开始,调用哈希算法计算主关键字的哈希值;步骤12、获取该哈希值在哈希表中的索引;步骤13、遍历索引位置下的主关键字链表,查找是否存在与主关键字对应的数据记录,若是,返回数据,若否,则结束;所述次关键字访问数据的流程包括:步骤21、开始,调用哈希算法计算次关键字的哈希值,步骤22、计算该哈希值在哈希表中的索引;步骤23、获取次关键字链表的第一个数据节点,判断是否到达次关键字链表尾部,若是,就结束,若否,进入步骤24;步骤24、判断该数据节点的哈希值是否与步 ...
【技术特征摘要】
1.一种支持多关键字快速访问的方法,其特征在于:建立哈希表,使哈希表包括哈希表头、主数据节点组合、次关键字哈希与主关键字组合,所述主数据节点组合的键值为主关键字,数据为用户实际数据,所述次关键字哈希与主关键字组合的内容为次关键字的哈希值和主关键字,从而建立起次关键字与数据的映射;所述主数据节点组合包括多个主关键字链表,所述次关键字哈希与主关键字组合包括多个次关键字链表,所述主关键字链表和次关键字链表对应地链接在哈希表头节点上; 所述方法中的访问数据分为主关键字访问数据的流程和次关键字访问数据的流程; 所述主关键字访问数据的流程包括: 步骤11、开始,调用哈希算法计算主关键字的哈希值; 步骤12、获取该哈希值在哈希表中的索引; 步骤13、遍历索引位置下的主关键字链表,查找是否存在与主关键字对应的数据记录,若是,返回数据,若否,则结束; 所述次关键字访问数据的流程包括: 步骤21、开始,调用哈希算法计算次关键字的哈希值, 步骤22、计算该哈希值在哈希表中的索引; 步骤23、获取次关键字链表的第一个数据节点,判断是否到达次关键字链表尾部,若是,就结束,若否,进入步骤24; 步骤24、判断该数据节点的哈希值是否与步骤21中的哈希值相等,若是,根据对应节点的主关键字获取数据,并进入步骤25,若否,则获取下一个次关键字链表的节点,回到步骤23 ; 步骤25、判断是否为待访问的数据,若 是,返回数据并结束;若否,则获取下一个次关键字链表的节点,回到步骤23。2.根据权利要求1所述的一种支持多关键字快速访问的方法,其特征在于:所述哈希表的构造包括初始化哈希表、获取数据、插入所有数据的过程,其中,每插入一条数据的过程包括: 步骤31、开始,计算主关键字的哈希值和插入位置; 步骤32、根据计算所得的插入位置将数据插入主关键字链表; 步骤33、判断是否还需要其他次关键字,若否,则结束,若是,计算该次关键字的哈希值,进入步骤34 ; 步骤34、将哈希值和主关键字形成数据节点并插入到次关键字链表中,回到步骤33。3.根据权利要求2所述的一种支持多关键字快速访问的方法,其特征在于:所述哈希表中数据的删除过程包括主关键字的删除过程和次关键字的删除过程; 所述主关键字的删除过程包括: 步骤41、开始,...
【专利技术属性】
技术研发人员:严柱海,
申请(专利权)人:厦门亿联网络技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。