[发明专利]一种数据处理方法和装置有效
申请号: | 201410826931.7 | 申请日: | 2014-12-25 |
公开(公告)号: | CN104462549B | 公开(公告)日: | 2018-03-23 |
发明(设计)人: | 郭瑞 | 申请(专利权)人: | 瑞斯康达科技发展股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京安信方达知识产权代理有限公司11262 | 代理人: | 李红爽,栗若木 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 装置 | ||
技术领域
本发明涉及数据处理技术领域,特别地涉及一种适用于网络通信的数据处理技术。
背景技术
在网络通信领域,通常各通信设备会进行例如数据转发等的各种信息交互,而各种交互都基于通信设备中存储的各项基本数据信息,例如IP地址、接口、MAC地址、老化时间、VLAN等等。在现有技术中,各种数据信息多以表项的形式来存储,并且涉及数据插入、查找或者删除等处理过程。
目前数据存储可以使用哈希表(HASH)或者链表,其中:
哈希表(HASH)也称散列表,采用一个映射函数f:key—>address将关键字映射到该记录在表中的存储位置,从而在想要查找该记录时,可以直接根据关键字和映射关系计算出该记录在表中的存储位置,而不是与一般的表中存在的记录的关键字进行比较来进行查找,能够快速定位到想要查找的记录,从而达到快速查找的目的。通常情况下,这种映射关系称作为HASH函数,而通过HASH函数和关键字计算出来的存储位置(说明一点,此处的存储位置只是HASH表中的存储位置,并不是实际的物理地址)称作为HASH地址。由于上述特点,HASH表常在数据存储过程中被用来实现创建、插入、删除、更新等操作,但是HASH表无法做到将数据有序存放,也有可能存在空洞。
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。任何一个节点的操作都需要从头部开始检索,插入和删除操作都需要从链头开始比较进行,链表由一系列节点组成,节点可以在运行时动态生成。链表能够按照要求将数据有序存放,但是无法做到数据的快速查找,任何一个操作,都要从链表头部开始查找,需要对链表中的每一节点进行比较后,确定需要操作的数据,因此随着数据的增多,操作的平均时间就越长。
由此,需要设计一种新的数据处理方法,不仅能够实现快速查找,还能够实现数据的有序和有效遍历,而且能够实现高效插入、删除,便于实现数据的统一化管理。
发明内容
本发明所要解决的技术问题是为了快速、高效的进行数据处理,提出一种数据处理方法和装置。
为了解决上述技术问题,本发明提供的技术方案如下:
本发明将HASH表与链表的功能组合在一起,结合HASH的快速查找和链表的有序与遍历能力,实现高效插入,删除和遍历的功能,实现高效的数据处理。
一种数据处理方法,包括:
预先建立哈希表和链表;
当需要对数据进行存储时,对于待存储数据,确定哈希地址对应的哈希节点,同时确定链表地址对应的链表节点;
并且建立该数据存储的实际物理存储地址与所述哈希节点的哈希地址和所述链表节点的链表地址的对应关系;
在该哈希节点中设置指向对应的链表地址的链表指针;在该链表节点中设置指向对应的哈希地址的哈希指针;
更新所述哈希表和所述链表。
进一步地,所述数据存储的实际物理存储地址为两个,每一个分别与所述哈希节点的哈希地址及链表节点的链表地址相对应。
进一步地,所述数据存储的实际物理存储地址为一个,与所述哈希节点的哈希地址及链表节点的链表地址分别对应。
进一步地,确定哈希地址对应的哈希节点,包括:
按照开放地址法确定哈希地址或者按照链地址法确定哈希地址,并将哈希节点挂在所确定的哈希地址。
进一步地,当对数据进行存储为有序插入,且插入点为非中间节点插入时,确定链表地址对应的链表节点,包括:
以链表头指向的链表头节点为比较原点,按顺序扫描链表各节点,如果链表首节点为空闲节点,则所述首节点作为用于数据存储的由系统分配链表地址的链表节点;
当有序插入为链表尾部插入时,按顺序扫描链表各节点,在扫描出的非空纤维链表的链表节点的链表后向指针无指向时,在其后添加用于数据存储的由系统分配链表地址的新的链表节点。
进一步地,当对数据进行存储为有序插入,并且插入点为中间节点插入时,确定链表地址对应的链表节点,包括:
利用哈希表方式查找到所述待插入数据被存储之后其之前一个已存储数据的哈希地址;
根据该哈希地址的哈希节点中设置的链表指针确定该数据在所述链表中的链表地址;
基于所确定的待存储数据的前一链表地址对应的链表节点中的指针信息以插入链表中间节点的方式确定待存储数据所对应的链表地址,及该链表地址所对应的链表节点。
进一步地,所述数据处理方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于瑞斯康达科技发展股份有限公司,未经瑞斯康达科技发展股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410826931.7/2.html,转载请声明来源钻瓜专利网。