一种数据处理方法和装置制造方法及图纸

技术编号:11210999 阅读:84 留言:0更新日期:2015-03-26 20:29
本发明专利技术公开了一种数据处理方法和装置,涉及网络通信的数据处理领域。包括:预先建立哈希表和链表;当需要对数据进行存储时,对于待存储数据,确定HASH地址对应的HASH节点,同时确定链表地址对应的链表节点;并且建立该数据存储的实际物理存储地址与所述HASH节点的HASH地址和所述链表节点的链表地址的对应关系;在该哈希节点中设置指向对应的链表地址的链表指针;在该链表节点中设置指向对应的哈希地址的哈希指针;更新所述HASH表和所述链表。本发明专利技术结合HASH的快速查找和链表的有序与遍历能力,实现高效插入,删除和遍历的功能,并对数据进行高效处理。

【技术实现步骤摘要】
一种数据处理方法和装置
本专利技术涉及数据处理
,特别地涉及一种适用于网络通信的数据处理技术。
技术介绍
在网络通信领域,通常各通信设备会进行例如数据转发等的各种信息交互,而各种交互都基于通信设备中存储的各项基本数据信息,例如IP地址、接口、MAC地址、老化时间、VLAN等等。在现有技术中,各种数据信息多以表项的形式来存储,并且涉及数据插入、查找或者删除等处理过程。 目前数据存储可以使用哈希表(HASH)或者链表,其中: 哈希表(HASH)也称散列表,采用一个映射函数f: key—〉address将关键字映射到该记录在表中的存储位置,从而在想要查找该记录时,可以直接根据关键字和映射关系计算出该记录在表中的存储位置,而不是与一般的表中存在的记录的关键字进行比较来进行查找,能够快速定位到想要查找的记录,从而达到快速查找的目的。通常情况下,这种映射关系称作为HASH函数,而通过HASH函数和关键字计算出来的存储位置(说明一点,此处的存储位置只是HASH表中的存储位置,并不是实际的物理地址)称作为HASH地址。由于上述特点,HASH表常在数据存储过程中被用来实现创建、插入、删除、更新等操作,但是HASH表无法做到将数据有序存放,也有可能存在空洞。 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。任何一个节点的操作都需要从头部开始检索,插入和删除操作都需要从链头开始比较进行,链表由一系列节点组成,节点可以在运行时动态生成。链表能够按照要求将数据有序存放,但是无法做到数据的快速查找,任何一个操作,都要从链表头部开始查找,需要对链表中的每一节点进行比较后,确定需要操作的数据,因此随着数据的增多,操作的平均时间就越长。 由此,需要设计一种新的数据处理方法,不仅能够实现快速查找,还能够实现数据的有序和有效遍历,而且能够实现高效插入、删除,便于实现数据的统一化管理。
技术实现思路
本专利技术所要解决的技术问题是为了快速、高效的进行数据处理,提出一种数据处理方法和装置。 为了解决上述技术问题,本专利技术提供的技术方案如下: 本专利技术将HASH表与链表的功能组合在一起,结合HASH的快速查找和链表的有序与遍历能力,实现高效插入,删除和遍历的功能,实现高效的数据处理。 一种数据处理方法,包括: [0011 ] 预先建立哈希表和链表; 当需要对数据进行存储时,对于待存储数据,确定哈希地址对应的哈希节点,同时确定链表地址对应的链表节点; 并且建立该数据存储的实际物理存储地址与所述哈希节点的哈希地址和所述链表节点的链表地址的对应关系; 在该哈希节点中设置指向对应的链表地址的链表指针;在该链表节点中设置指向对应的哈希地址的哈希指针; 更新所述哈希表和所述链表。 进一步地,所述数据存储的实际物理存储地址为两个,每一个分别与所述哈希节点的哈希地址及链表节点的链表地址相对应。 进一步地,所述数据存储的实际物理存储地址为一个,与所述哈希节点的哈希地址及链表节点的链表地址分别对应。 进一步地,确定哈希地址对应的哈希节点,包括: 按照开放地址法确定哈希地址或者按照链地址法确定哈希地址,并将哈希节点挂在所确定的哈希地址。 进一步地,当对数据进行存储为有序插入,且插入点为非中间节点插入时,确定链表地址对应的链表节点,包括: 以链表头指向的链表头节点为比较原点,按顺序扫描链表各节点,如果链表首节点为空闲节点,则所述首节点作为用于数据存储的由系统分配链表地址的链表节点; 当有序插入为链表尾部插入时,按顺序扫描链表各节点,在扫描出的非空纤维链表的链表节点的链表后向指针无指向时,在其后添加用于数据存储的由系统分配链表地址的新的链表节点。 进一步地,当对数据进行存储为有序插入,并且插入点为中间节点插入时,确定链表地址对应的链表节点,包括: 利用哈希表方式查找到所述待插入数据被存储之后其之前一个已存储数据的哈希地址; 根据该哈希地址的哈希节点中设置的链表指针确定该数据在所述链表中的链表地址; 基于所确定的待存储数据的前一链表地址对应的链表节点中的指针信息以插入链表中间节点的方式确定待存储数据所对应的链表地址,及该链表地址所对应的链表节点。 进一步地,所述数据处理方法还包括: 当需要对已存储数据进行查找时,采用哈希表查找方式确定待查找数据对应的哈希地址; 基于所确定的哈希地址与数据存储的实际物理存储地址的对应关系确定待查找数据的实际物理存储地址; 在确定的实际物理存储地址匹配待查找数据。 进一步地,所述数据处理方法还包括: 当对已查找到数据查找下一个时,根据已查找到的数据的哈希地址对应的哈希节点中的链表指针确定该已查找到数据对应链表的链表地址; 利用该链表地址对应的链表节点中的后向指针确定所述链表的下一个节点的链表地址; 基于所确定的下一个节点的链表地址与数据存储的实际物理存储地址的对应关系确定待查找数据的实际物理存储地址; 在确定的实际物理存储地址匹配待查找数据。 进一步地,当对已查找到的数据进行删除时,包括: 根据已查找到数据对应的哈希地址,确定该哈希地址对应的哈希节点,以及该哈希地址对应的数据存储的实际物理存储地址; 利用所述哈希节点中设置的指向对应的链表节点的链表指针确定所述链表节点,以及该链表地址对应的数据存储的实际物理存储地址; 删除此哈希节点、链表节点,以及所确定的数据存储的实际物理存储地址的存储数据; 更新哈希表和链表。 一种数据处理装置,存储单元和处理单元, 所述存储单元用于存储哈希表和链表; 所述处理单元用于预先建立哈希表和链表;还用于当需要对数据进行存储时,对于待存储数据,确定哈希地址对应的哈希节点,同时确定链表地址对应的链表节点;并且用于建立该数据存储的实际物理存储地址与所述哈希节点的哈希地址和所述链表节点的链表地址的对应关系;还用于在该哈希节点中设置指向对应的链表地址的链表指针;在该链表节点中设置指向对应的哈希地址的哈希指针;还用于更新所述哈希表和所述链表。 进一步地,所述处理单元确定哈希地址对应的哈希节点是指: 按照开放地址法确定哈希地址或者按照链地址法确定哈希地址,并将哈希节点挂在所确定的哈希地址。 进一步地,所述处理单元,用于当对数据进行存储为有序插入,且插入点为非中间节点插入时,确定链表地址对应的链表节点,是指: 以链表头指向的链表头节点为比较原点,按顺序扫描链表各节点,如果链表首节点为空闲节点,则所述首节点作为用于数据存储的由系统分配链表地址的链表节点; 当有序插入为链表尾部插入时,按顺序扫描链表各节点,在扫描出的非空纤维链表的链表节点的链表后向指针无指向时,在其后添加用于数据存储的由系统分配链表地址的新的链表节点。 进一步地,所述处理单元,用于当对数据进行存储为有序插入,并且插入点为中间节点插入时,确定链表地址对应的链表节点,是指: 利用哈希表方式查找到所述待插入数据被存储之后其之前一个已存储数据的哈希地址; 根据该哈希地址的哈希节点中设置的链表指针确定该数据在所述链表中的链表地址; 基于所确定的待存储数据的前一链表地址对应的链表节点中本文档来自技高网
...
一种数据处理方法和装置

【技术保护点】
一种数据处理方法,其特征在于,包括:预先建立哈希表和链表;当需要对数据进行存储时,对于待存储数据,确定哈希地址对应的哈希节点,同时确定链表地址对应的链表节点;并且建立该数据存储的实际物理存储地址与所述哈希节点的哈希地址和所述链表节点的链表地址的对应关系;在该哈希节点中设置指向对应的链表地址的链表指针;在该链表节点中设置指向对应的哈希地址的哈希指针;更新所述哈希表和所述链表。

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括: 预先建立哈希表和链表; 当需要对数据进行存储时,对于待存储数据,确定哈希地址对应的哈希节点,同时确定链表地址对应的链表节点; 并且建立该数据存储的实际物理存储地址与所述哈希节点的哈希地址和所述链表节点的链表地址的对应关系; 在该哈希节点中设置指向对应的链表地址的链表指针;在该链表节点中设置指向对应的哈希地址的哈希指针; 更新所述哈希表和所述链表。2.根据权利要求1所述的数据处理方法,其特征在于,所述数据存储的实际物理存储地址为两个,每一个分别与所述哈希节点的哈希地址及链表节点的链表地址相对应。3.根据权利要求1所述的数据处理方法,其特征在于,所述数据存储的实际物理存储地址为一个,与所述哈希节点的哈希地址及链表节点的链表地址分别对应。4.根据权利要求1所述的数据处理方法,其特征在于,确定哈希地址对应的哈希节点,包括: 按照开放地址法确定哈希地址或者按照链地址法确定哈希地址,并将哈希节点挂在所确定的哈希地址。5.根据权利要求1至4中任一所述的数据处理方法,其特征在于,当对数据进行存储为有序插入,且插入点为非中间节点插入时,确定链表地址对应的链表节点,包括: 以链表头指向的链表头节点为比较原点,按顺序扫描链表各节点,如果链表首节点为空闲节点,则所述首节点作为用于数据存储的由系统分配链表地址的链表节点; 当有序插入为链表尾部插入时,按顺序扫描链表各节点,在扫描出的非空纤维链表的链表节点的链表后向指针无指向时,在其后添加用于数据存储的由系统分配链表地址的新的链表节点。6.根据权利要求1至4中任一所述的数据处理方法,其特征在于,当对数据进行存储为有序插入,并且插入点为中间节点插入时,确定链表地址对应的链表节点,包括: 利用哈希表方式查找到所述待插入数据被存储之后其之前一个已存储数据的哈希地址; 根据该哈希地址的哈希节点中设置的链表指针确定该数据在所述链表中的链表地址; 基于所确定的待存储数据的前一链表地址对应的链表节点中的指针信息以插入链表中间节点的方式确定待存储数据所对应的链表地址,及该链表地址所对应的链表节点。7.根据权利要求1至3中任一所述的数据处理方法,其特征在于,还包括: 当需要对已存储数据进行查找时,采用哈希表查找方式确定待查找数据对应的哈希地址; 基于所确定的哈希地址与数据存储的实际物理存储地址的对应关系确定待查找数据的实际物理存储地址; 在确定的实际物理存储地址匹配待查找数据。8.根据权利要求7所述的数据处理方法,其特征在于,还包括: 当对已查找到数据查找下一个时,根据已查找到的数据的哈希地址对应的哈希节点中的链表指针确定该已查找到数据对应链表的链表地址; 利用该链表地址对应的链表节点中的后向指针确定所述链表的下一个节点的链表地址; 基于所确定的下一个节点的链表地址与数据存储的实际物理存储地址的对应关系确定待查找数据的实际物理存储地址; 在确定的实际物理存储地址匹配待查找数据。9.根据权利要求7所述的数据处理方法,其特征在于,当对已查找到的数据进行删除时,包括: 根据已查找到数据对应的哈希地址,确定该哈希地址对应的哈希节点,以及该哈希地址对应的数据存储的实际物理存储地址; 利用所述哈希节点中设置的指向对应的链表节点的链表指针确定所述链表节点,以及该链表地址对应的数据存储的实际物理存储地址; 删除此哈希节点、链表节点,以及所确定的数据...

【专利技术属性】
技术研发人员:郭瑞
申请(专利权)人:瑞斯康达科技发展股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1