[发明专利]一种关键数据结构的动态重构方法在审
申请号: | 202210685649.6 | 申请日: | 2022-06-16 |
公开(公告)号: | CN115098497A | 公开(公告)日: | 2022-09-23 |
发明(设计)人: | 王俊昌;刘敦伟;肖甫;樊卫北;何昕;田臣 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 陈月菊 |
地址: | 210046*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 关键 数据结构 动态 方法 | ||
1.一种关键数据结构的动态重构方法,其特征在于,所述重构方法包括以下步骤:
S1,新建一个哈希表,用于存储旧的哈希表中的节点;
S2,遍历旧哈希表中每个哈希桶的节点,对于每个哈希桶中的每个节点,全局指针指向该节点,该节点进入危险期,转入步骤S3;所述危险期是指分发节点过程中,指定节点已经从旧的哈希表中删除,但尚未存入新的哈希表的一段时间;
S3,将该节点从旧哈希表中删除;
S4,根据新的哈希表的哈希函数,确定当前节点在新哈希表中的位置,将当前节点插入到新哈希表中,同步将全局指针调整为NULL,该节点结束危险期状态;
S5,重复步骤S2-S4,直至旧哈希表中节点数为0,删除旧哈希表。
2.根据权利1所述的关键数据结构的动态重构方法,其特征在于,所述重构方法应用于查找操作时,包括以下具体步骤:
S21,根据外部输入的节点的键值,确定待查找节点的键值为key;
S22,在旧哈希表中确定键值为key的节点所在的哈希桶,遍历该哈希桶,查找键值为key的节点,若查找到键值为key的节点,则返回该节点的指针,结束流程;若未查找到键值为key的节点,则转入步骤S23;
S23,判断当前是否有重建操作正在执行,如没有重建操作正在执行,则返回-ENOENT,表示哈希表中没有键值为key的节点,结束流程;若当前有重建操作正在执行,则转入步骤S24;
S24,遍历处于危险期的节点,查找键值为key的节点,若查找到键值为key的节点,返回该节点的指针,结束流程;若未查找到键值为key的节点,则转入步骤S25;
S25,在新哈希表中确定键值为key的节点所在的哈希桶,遍历该哈希桶,查找键值为key的节点,若查找到键值为key的节点,返回该节点的指针,结束流程;若未查找到键值为key的节点,则查找结束,返回-ENOENT,表示哈希表中没有键值为key的节点。
3.根据权利1所述的关键数据结构的动态重构方法,其特征在于,所述重构方法应用于删除操作时,包括以下具体步骤:
S26,根据外部输入的节点的键值,确定待删除节点的键值key;
S27,在旧哈希表中确定键值为key的节点所在的哈希桶位置,尝试删除键值为key的节点;如删除成功,则返回SUCCESS,结束流程;如未删除成功,则转入步骤S28;
S28,判断是否有重建操作正在执行,如没有重建操作在执行,则删除结束,返回-ENOENT,表示哈希表中没有键值为key的节点,删除失败;如有重建操作在执行,则转入步骤S29;
S29,遍历处于危险期的节点,尝试删除键值为key的节点,如成功删除,则返回SUCCESS,流程结束;如未删除成功,则转入步骤S30;
S30,在新哈希表中确定键值为key的节点所在哈希桶的位置,尝试删除键值为key的节点,如删除成功,返回SUCCESS,流程结束;如未删除成功,则删除结束,返回-ENOENT,表示哈希表中没有键值为key的节点,删除失败。
4.根据权利1所述的关键数据结构的动态重构方法,其特征在于,所述重构方法应用于插入操作时,包括以下步骤:
S31,根据外部输入的节点的键值,确定待插入节点的键值key;
S32,判断是否有重建操作正在执行,如没有重建操作正在执行,则转入步骤S33;如有重建操作正在执行,则转入步骤S34;
S33:在旧哈希表中确定键值为key的节点哈希桶的位置,插入键值为key的节点;如插入成功,则返回SUCCESS,流程结束;如插入失败,则转入步骤S36;
S34,在旧哈希表和处于危险期的节点中查找键值为key的节点;如找键值为key的节点,转入步骤S36;如未找键值为key的节点,则转入步骤S35;
S35,在新哈希表查找键值为key的节点所在哈希桶的位置,在所属的哈希桶中插入键值为key的节点,如插入成功,则返回SUCCESS,结束流程;如插入失败,则转入步骤S36;
S36,结束插入流程,返回-EEXIST,表示哈希表中存在键值为key的节点,插入失败。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210685649.6/1.html,转载请声明来源钻瓜专利网。