一种基于树型结构的号码段匹配算法及其实现制造技术

技术编号:8532891 阅读:236 留言:0更新日期:2013-04-04 15:55
本发明专利技术公开了一种基于树型结构的号码段匹配算法及其实现。在电信业务领域中,系统经常会涉及到分析用户号码的网络属性、归属地以及群组等信息,如果简单地遍历匹配,将会非常消耗系统性能。因此需要一种高性能的号码段匹配算法,对于任意的一个号码,可以快速定位到所属的号码段。基于树型结构的号码段匹配算法,将每个号码段转变成树结构中的一个路径,对于任意的一个真实号码,通过树中的路径匹配便可快速定位到相应的号码段。

【技术实现步骤摘要】

本专利技术涉及通讯领域、电信业务领域,特别是涉及一种基于树型结构的号码段匹 配算法及其实现。
技术介绍
随着电信通讯技术的迅猛发展,国内各大运营商经过激烈的竞争,发展为目前中 国电信、中国联通、中国移动三大电信运营商,随着3G技术的发展、成熟,国内三大运营商 都进入了全业务运营的时代。随着技术的更新换代,业务也跟着发展和壮大,用户数量也飞 速地增长。在电信业务领域中,系统经常会涉及到分析用户号码的网络属性、归属地以、用户 类型以及所属群组等信息,从而根据号码的不同属性进行不同的操作,比如进行不同价格 的计费、播放不同的提示音、进入订购的特殊业务等等。对于省级或者全国级的应用,甚至 是跨运营商网络的全国级应用,系统可能涉及到三大运营商所有网络类型下的所有用户号 码,这些号码的属性中仅归属地一项,就是一个很大的数据量,如果采用简单地遍历匹配, 将会非常消耗系统性能。因此需要一种高性能的号码段匹配算法,对于任意的一个号码,可 以快速定位到所属的号码段。基于树型结构的号码段匹配算法,将每个号码段转变成树结 构中的一个路径,对于任意的一个真实号码,通过树中的路径匹配便可快速定位到相应的 号码段。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于树型结构的号码段匹配算法及其实 现,以加快用户号码属性的分析速度,从而提高系统的性能。为实现上述专利技术目的,本专利技术提供一种基于树型结构的号码段匹配算法及其实 现,包括树型结构和号码段属性。所述树型结构,由树节点组成,树节点分为支干和树叶两 种类型,支干中包含一个指针数组,指向下一级的多个树节点;树叶为一个路径的终点,包 含了一个指向号码段属性的指针;所述号码段属性,记录了该号码段的相关属性,包括号码 段、归属运营商、归属地、终端类型、扩展属性等;所述树型结构,用于将每一个号码段对应成树中的一个路径,该路径从树根节点 开始,以一个树叶节点为终结。号码段中的第I位号码对应于树根节点(也称为第I级节 点)中指向下一级节点的指针数组的一个下标,根据该下标对应的指针指向第2级节点,号 码段中的第2位号码对应于该第2级节点中指向下一级节点的指针数组的一个下标,依次 类推,号码段中的最后一位号码则对应的指针则指向一个树叶节点;所述号码段属性,用于记录了该号码段的相关属性,包括号码段、归属运营商、归 属地、终端类型、扩展属性等。本专利技术还提供一种基于树型结构的号码段匹配算法及其实现,包括树节点中使用一个无符号字符变量记录节点的类型,O表示支干,I表示树叶;树节点中采用联合(union)的方式来保存支干对应的下一级节点指针数组或者树叶对应的 号码段属性指针。本专利技术还提供一种基于树型结构的号码段匹配算法及其实现,包括所述树干节点中的指针数组,其长度为17,号码‘0’-‘9’分别对应数组下标1-10, 特殊号码‘a’、‘b’、‘c’、‘d’则分别对应数组下标的11、12、13、14,特殊号码‘*’、‘ + ’则分 别对应数组下标的15、16。当一个树干同时也是一个树叶时,使用指针数组中下标为O的指 针,指向一个树叶节点。根据其它特殊的号码需求,数组长度可进行灵活扩展。优选的有,上述方法中,还包括所述的号码段路径匹配过程中,如果匹配到某一 级节点时,该节点非叶节点并且没有对应的下一级节点,则回退至上一级节点,检查上一级 节点的指针数组中下标为O的指针是否指向了一个树叶节点,如果是,则匹配路径成功;如 果不是,则继续回退上一级节点,直到匹配成功或者到达根节点,到达根节点时认为匹配失 败,没有对应的号码段信息。本专利技术还提供一种基于树型结构的号码段匹配算法及其实现,包括采用锁的机制,对于号码段数据的增、删、查操作都使用了锁,从而支持多线程的 操作,保证在多线程环境下的安全使用。。由上述方案可以看出,本专利技术中每一个号码段对应为树型结构中的一个路径,一 个号码的匹配过程最多为该号码长度的2倍次操作,从而减少了号码匹配的操作,可以作 为一种高性能的号码段匹配算法。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本 专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。图1为本专利技术实现中系统结构示意图2为本专利技术实施例一中树型结构数据示意图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本专利技术作进一步详细的说明。显然,所描述的实施例仅是本专利技术一部分实施例,而 不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动 前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一,参见图2。本专利技术提供一种基于树型结构的号码段匹配算法及其实现,可用于进行电信业务 中用户号码归属地的分析,其实现提供了树型结构的构造以及增加号码段、删除号码段、号 码查找匹配等方法。系统初始化的时候,将所有号码段信息通过增加的操作逐个加入到树 型结构中,后续可动态地进行相关号码段信息的增加和删除,可随时进行号码的查找匹配。假设存在号码段数据13882属于云南省、1388232属于云南省昆明市,但不存在号 码段1388231,则构造的树型结构参见图2。当用户号码为13882321234时,从根节点开始匹配,号码第I位数字是1,对应为 指向树干的指针;进入第2级节点,号码第2位数字是3,对应为指向树干的指针;进入第3级节点,号码第3位数字是8,对应为指向树干的指针;进入第4级节点,号码第4位数字 是8,对应为指向树干的指针;进入第5级节点,号码第5位数字是2,对应为指向树干的指 针;进入第6级节点,号码第6位数字是3,对应为指向树干的指针;进入第7级节点,号码 第7位数字是2,对应为指向树叶的指针;至此,匹配到对应的号码段,该用户号码为中国移 动云南省昆明市的号码。当用户号码为13882311234时,从根节点开始匹配,号码第I位数字是1,对应为 指向树干的指针;进入第2级节点,号码第2位数字是3,对应为指向树干的指针;进入第3 级节点,号码第3位数字是8,对应为指向树干的指针;进入第4级节点,号码第4位数字是 8,对应为指向树干的指针;进入第5级节点,号码第5位数字是2,对应为指向树干的指针; 进入第6级节点,号码第6位数字是3,对应为指向树干的指针;进入第7级节点,号码第7 位数字是1,对应的指针为空;回退至上一级节点,检查指针数组下标为O的指针,指向了一 个树叶节点;至此,匹配到对应的号码段,该用户号码为中国移动云南省的号码,但不确定 是云南哪个地市。由上可见,本专利技术提供的一种基于树型结构的号码段匹配算法及其实现,有以下 优点。(I)使用方便本专利技术提供的基于树型结构的号码段匹配算法的实现,封装了号码段信息的增 加、删除、查找等操作,使用者将已经实现的代码加入到工程中,创建一个实例,便可快速实 现号码段匹配功能。(2)高性能每一个号码段对应为树型结构中的一个路径,一个号码的匹配过程最多为该号码 长度的2倍次操作,与号码段数据量的大小无直接关系,从而减少了号码匹配的操作,可以 作为一种高性能的号码段匹本文档来自技高网...

【技术保护点】
一种基于树型结构的号码段匹配算法及其实现,其特征在于,包括树型结构和号码段属性;所述树型结构,由树节点组成,树节点分为支干和树叶两种类型,支干中包含一个指针数组,指向下一级的多个树节点;树叶为一个路径的终点,包含了一个指向号码段属性的指针;所述号码段属性,记录了该号码段的相关属性,包括号码段、归属运营商、归属地、终端类型、扩展属性等。

【技术特征摘要】
1.一种基于树型结构的号码段匹配算法及其实现,其特征在于,包括树型结构和号码段属性;所述树型结构,由树节点组成,树节点分为支干和树叶两种类型,支干中包含一个指针数组,指向下一级的多个树节点;树叶为一个路径的终点,包含了一个指向号码段属性的指针;所述号码段属性,记录了该号码段的相关属性,包括号码段、归属运营商、归属地、终端类型、扩展属性等。2.一种基于树型结构的号码段匹配算法及其实现,其特征在于,包括树节点中采用联合(union)的方式来保存支干对应的下一级节点指针数组或者树叶对应的号码段属性指针;树节点中使用一个无符号字符变量记录节点的类型,O表示支干,I表示树叶。3.一种基于树型结构的号码段匹配算法及其实现,其特征在于,包括每一个号码段对应为树型结构中的一个路径,该路径从树根节点开始,以一个树叶节点为终结。号码段中的第I位号码对应于树根节点(也称为第I级节点...

【专利技术属性】
技术研发人员:宁学军苏焕杰黄兴斌
申请(专利权)人:佳都新太科技股份有限公司
类型:发明
国别省市:

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

1