[发明专利]一种适应于快速数据查找的树形链表及其生成算法无效

专利信息
申请号: 02114650.0 申请日: 2002-06-28
公开(公告)号: CN1387119A 公开(公告)日: 2002-12-25
发明(设计)人: 李卫;管晓宏 申请(专利权)人: 西安交通大学
主分类号: G06F7/08 分类号: G06F7/08;G06F7/00
代理公司: 西安通大专利代理有限责任公司 代理人: 徐文权
地址: 710049*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种适应于快速数据查找的树形链表及其生成算法,主要通过两个基本操作来实现,即增加关键字的add_key操作和删除一个关键字的del_key操作;反复进行这两个操作可以生成整棵树形链表,由于随着半导体技术的进步,内存等硬件的价格大幅度下降,本发明通过计算机算法中的“空间换时间”原则,对关键字集合K,构造专用数据链表,从而使得查找速度大大加快,使算法的性能只与N有关,与N是线性关系,而与k和SIZE(pi)无关;匹配算法简单,只需要几条汇编指令就可以完成。
搜索关键词: 一种 适应 快速 数据 查找 树形 及其 生成 算法
【主权项】:
1、一种适应于快速数据查找的树形链表,其特征在于:树形链表是基于有限自动机DFA的,定义如下:S(afinitesetofstates):匹配过程所处的状态即每一个状态对应一个节点,对一个给定的关键字集P,其最大值是L,状态记录了扫描过程中对各个关键字pi的匹配状况;E(analphabet):0-255,即表达一个字节的内容;s(initialstate):空字符状态,即未读入任何字符状态,空字符状态s∈S;F(finialstate):最终状态集,其中每一个元素表示当匹配到某个关键字时所处的状态,FS;g(transitionfunction):S×E->S,读入一个新字符时,状态机状态转移的函数为g(A,a)=B,表示读入a使状态机从状态A转移到状态B;本树形链表实现的关键是找到一个满足定义的g的实现;树形链表的构造在DFA的构造中g的设定:(1)同一个关键字之内的状态转移设关键字为a1a2a3a4...an;每一个字符定义为DFA树形链表的一个状态,表示对该关键字进行匹配时所处的匹配位置,ai对应的状态称为Ai;则g的定义是:g(Ai,ai)=Ai+1在树形链表的DFA中,表现为连接一个关键字各个字符的链,成为树的一个分支;(2)当有两个关键字A和B时的状态转移假设:关键字A=a1a2a3...aiai+1ai+2ai+3...ajaj+1...an关键字B=aiai+1...ajb1b2...bm则称关键字B前缀包含于A,即B的前缀aiai+1...aj包含在A中,记为PrefixIn(B,A)=true,或A->B,否则PrefixIn(B,A)=false;PrefixIn是设定“交叉链接”的依据;定义PrefixInStr(B,A)=aiai+1...aj即包含的前缀部分;首先,按同一关键字之内的状态转移确定状态和g,即先确定关键字内的状态转移关系;如果A和B之间没有PrefixIn关系,则g的构造结束;如果两个关键字有PrefixIn关系,设PrefixIn(B,A)=true,且关键字A=a1a2a3...aiai+1ai+2ai+3...ajaj+1...an;关键字B=aiai+1...ajb1b2...bm对应于关键字A的各个状态记为Aa1,Aa2,...Aan;对应于关键字A的各个状态记为Ba1,Ba2,...Baj,Bb1,Bb2,...Bbm;在匹配关键字A的同时也在检查是否同时匹配B,在匹配到状态Aaj的时候,如果读入的下一个字符是b1,则下一状态为Bb1,即应添加g(Aaj,b1)=Bb1在树形链表的DFA结构中,表现为从A的链中指向B的链中的一个“交叉链接”;(3)三个以上关键字A,B,C的情况如果任意两个关键字之间没有PrefixIn关系,按同一个关键字之内的状态转移处理,如果同时最多有两个关键字之间有PrefixIn关系,即仅有小于等于两个PrefixIn关系时,则按两个关键字A和B时的状态转移处理,同时有三个PrefixIn关系的情况,设PrefixIn(B,A)=true,且Prefix(C,A)=true,那么有g(Ax,bz)=Bzg(Ay,cz)=Cz情况1:如果Ax≠Ay,则没有冲突情况发生,按两个关键字A和B时的状态转移处理;情况2:如果Ax=Ay,且bz≠cz则也不会有冲突情况发生,直接设置g(Ax,bz)=Bz,g(Ax,cz)=Cz即可;情况3:如果Ax=Ay,且bz=cz,则会有冲突情况发生,即g(Ax,bz)=Bzg(Ax,bz)=Cz如果有冲突的情况发生,B,C之间必有PrefixIn关系,设PrefixIn(B,C)=true,则去掉g(Ax,bz)=Bz这个链接,保留g(Ax,bz)=Cz。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/02114650.0/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top