线性结构到树形结构的数据结构转换方法技术

技术编号:14399493 阅读:109 留言:0更新日期:2017-01-11 12:44
本发明专利技术公开了一种线性结构到树形结构的数据结构转换方法,包括:在数据库的原始数据集合中查找一级数据中的一个一级实体对象和次级实体对象;建立次级实体对象的数据编码并写入一级实体对象的子级数据集合中;将次级实体对象填充至过渡数据集合并作为初级过渡实体对象,在原始数据集合中找具有与初级过渡实体对象的对象编码相同的父级编码的次级过渡实体对象;建立次级过渡实体对象的数据编码,并写入初级过渡实体对象的子级数据集合中;将次级过渡实体对象作为初级过渡实体对象填充至过渡数据集合,循环遍历过渡数据集合中的全部实体对象;根据实体对象的数据编码和子级数据集合将原始数据集合中线性结构存储的实体对象处理为树形数据结构输出。

【技术实现步骤摘要】

本专利技术涉及数据处理
,尤其涉及一种线性结构到树形结构的数据转换方法。
技术介绍
随着信息时代的快速发展,客户对信息、数据的展现界面的要求也越来越高。以一个信息列表页面来说,以往的展现都是线性展现方式,但是在财务软件中对于财务指标、会计科目等一些需要以树形形态展现的方式,往往会给用户带来极大的困扰。线性列表数据的读取和加载,一般都是根据查询语句到数据库中查询得到数据,把数据通过适配器加载到变量中,最后绑定到页面以线性列表形式呈现给用户。但是如果想要把数据库表中的以线性方式存储的支持树形结构查询的数据以树形形态呈现给用户,就需要对数据库查询出来的数据做很繁琐的解析,给客户的使用带来了极大的不便。
技术实现思路
有鉴于此,本专利技术提供了一种线性结构到树形结构的数据结构转换方法,可以将线性的数据结构转换为树形形态展现,满足用户多元化的需求,数据结构转换便捷高效,适用性好。本专利技术实施例提供了一种线性结构到树形结构的数据结构转换方法,包括:步骤1:在数据库的原始数据集合中查找一级数据中的一个一级实体对象;所述实体对象具有属性信息,所述属性信息中至少包括对象编码、父级编码和子级数据集合;所述一级数据的父级编码为空;所述原始数据集合中实体对象的子级数据集合的初始参数为空;所述原始数据集合中的实体对象以线性结构存储;步骤2:在所述原始数据集合中,查找具有与所述一级实体对象的对象编码相同的父级编码的次级实体对象;步骤3:建立所述次级实体对象的数据编码,并将所述次级实体对象的数据编码作为参数写入所述一级实体对象的子级数据集合中;步骤4:将所述次级实体对象填充至过渡数据集合;步骤5:将所述过渡数据集合中的实体对象作为初级过渡实体对象,在所述原始数据集合中,查找具有与所述初级过渡实体对象的对象编码相同的父级编码的次级过渡实体对象;步骤6:建立所述次级过渡实体对象的数据编码,并将所述次级过渡实体对象的数据编码作为参数写入所述初级过渡实体对象的子级数据集合中;步骤7:将所述次级过渡实体对象作为初级过渡实体对象填充至过渡数据集合;重复执行步骤5-7,直至循环遍历所述过渡数据集合中的全部实体对象;步骤8:根据所述实体对象的数据编码和子级数据集合,将所述原始数据集合中线性结构存储的实体对象处理为树形数据结构并输出。优选的,在所述步骤4之后,所述方法还包括:如果所述过渡数据集合为空,则继续在所述原始数据集合中查找一级数据中的下一个一级实体对象。优选的,所述根据所述实体对象的数据编码和子级数据集合,将所述原始数据集合中线性结构存储的实体对象处理为树形数据结构并输出具体为:当第二实体对象的数据编码为第一实体对象的子集数据集合中的参数,将所述第一实体对象作为父节点,第二实体对象作为第一实体对象的子节点从而建立树形数据结构。优选的,所述输出具体为显示输出。本专利技术提供的线性结构到树形结构的数据结构转换方法,可以将线性的数据结构转换为树形形态展现,满足用户多元化的需求,数据结构转换便捷高效,适用性好。附图说明图1为本专利技术实施例提供的线性结构到树形结构的数据结构转换方法流程图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部份实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。下面结合图1所示的线性结构到树形结构的数据结构转换方法流程图,对本专利技术实施例提供的数据结构转换方法进行详细说明。如图1所示,本专利技术提供的线性结构到树形结构的数据结构转换方法主要包括如下步骤:步骤1:在数据库的原始数据集合中查找一级数据中的一个一级实体对象;具体的,原始数据集合中的实体对象以线性结构存储,以一个具体的例子所示即如表1所示。部门编码部门名称级别父级编码子级数据集合D101某公司1默认为空D101101技术部2D101默认为空D101102销售部2D101默认为空D101101101ASP.NET组3D101101默认为空D101102101销售一部3D101102默认为空表1表1中每一行为一个实体对象,每个实体对象都具有属性信息,属性信息中至少包括对象编码、父级编码和子级数据集合;在表1所示的例子中,属性信息包括部门编码(即对象编码)、部门名称、级别、父级编码、子级数据集合,而‘技术部’、‘D101102’等,均为属性值。其中,一级数据的父级编码为空;原始数据集合中实体对象的子级数据集合的初始参数为空。步骤2:在原始数据集合中,查找具有与一级实体对象的对象编码相同的父级编码的次级实体对象;具体的,在上述表1所示的例子中,‘技术部’、‘销售部’的父级编码都为‘D101’,即与一级实体对象‘某公司’的部门编码(即对象编码)相同。因此‘技术部’、‘销售部’为‘某公司’的次级实体对象。步骤3:建立次级实体对象的数据编码,并将次级实体对象的数据编码作为参数写入一级实体对象的子级数据集合中;具体的,在建立实体对象的数据编码时,可以首先设定编码建立规则,例如,当用‘X1’、‘X2’表示不同的一级实体对象,在其后增加“-1”、“-2”……“-N”表示前一级实体对象的次级实体对象。例如,上述一级实体对象‘某公司’,可以设定其数据编码为D1,其次级实体对象‘技术部’、‘销售部’,可分别表示为D1-1、D1-2。那么在本步骤中,将D1-1、D1-2写入到一级实体对象D1的子级数据集合中。即实体对象D1的子集数据集合中包含了一个实体对象D1-1和D1-2。可具体的表现为表2所示:表2步骤4:将次级实体对象填充至过渡数据集合;具体的,在本方法中,单独设立一个过渡数据集合,作为数据解析过程中的第三方变量。在一级实体对象没有次级实体对象的情况下,或者在后续的循环步骤中没有再次级的实体对象的情况下,本步骤中的过渡数据集合为空。因此在上述步骤4之后,可以执行步骤5。步骤5:判断过渡数据集合是否为空。如果所述过渡数据集合为空,则返回执行步骤1,继续在原始数据集合中查找一级数据中的下一个一级实体对象。否则继续执行步骤6。步骤6:将过渡数据集合中的实体对象作为初级过渡实体对象,在原始数据集合中,查找具有与初级过渡实体对象的对象编码相同的父级编码的次级过渡实体对象;结合上述具体实例,实体对象D1-1、D1-2此时被填充到过渡数据集合中作为初级过渡实体对象。实体对象D1-1的对象编码为‘D101101’,在原始数据集合中查找具有相同父级编码的实体对象,得到部门名称为‘ASP.NET组’的实体对象,将其作为实体对象D1-1的次级过渡实体对象。同样的,实体对象D1-2的对象编码为‘D101102’,在原始数据集合中查找具有与之相同的父级编码的实体对象,得到部门名称为‘销售一部’的实体对象,将其作为实体对象D1-2的次级过渡实体对象。步骤7:建立所述次级过渡实体对象的数据编码,并将所述次级过渡实体对象的数据编码作为参数写入所述初级过渡实体对象的子级数据集合中;具体的,依据上述设定的数据编码建立规则,建立次级过渡实体对象的数据编码。例如,上述一级实体对象为初级过渡实体对象‘技术部’,其数据编码为D1-1,其次级过渡实体对象‘ASP本文档来自技高网...
线性结构到树形结构的数据结构转换方法

【技术保护点】
一种线性结构到树形结构的数据结构转换方法,其特征在于,所述数据结构转换方法包括:步骤1:在数据库的原始数据集合中查找一级数据中的一个一级实体对象;所述实体对象具有属性信息,所述属性信息中至少包括对象编码、父级编码和子级数据集合;所述一级数据的父级编码为空;所述原始数据集合中实体对象的子级数据集合的初始参数为空;所述原始数据集合中的实体对象以线性结构存储;步骤2:在所述原始数据集合中,查找具有与所述一级实体对象的对象编码相同的父级编码的次级实体对象;步骤3:建立所述次级实体对象的数据编码,并将所述次级实体对象的数据编码作为参数写入所述一级实体对象的子级数据集合中;步骤4:将所述次级实体对象填充至过渡数据集合;步骤5:将所述过渡数据集合中的实体对象作为初级过渡实体对象,在所述原始数据集合中,查找具有与所述初级过渡实体对象的对象编码相同的父级编码的次级过渡实体对象;步骤6:建立所述次级过渡实体对象的数据编码,并将所述次级过渡实体对象的数据编码作为参数写入所述初级过渡实体对象的子级数据集合中;步骤7:将所述次级过渡实体对象作为初级过渡实体对象填充至过渡数据集合;重复执行步骤5‑7,直至循环遍历所述过渡数据集合中的全部实体对象;步骤8:根据所述实体对象的数据编码和子级数据集合,将所述原始数据集合中线性结构存储的实体对象处理为树形数据结构并输出。...

【技术特征摘要】
1.一种线性结构到树形结构的数据结构转换方法,其特征在于,所述数据结构转换方法包括:步骤1:在数据库的原始数据集合中查找一级数据中的一个一级实体对象;所述实体对象具有属性信息,所述属性信息中至少包括对象编码、父级编码和子级数据集合;所述一级数据的父级编码为空;所述原始数据集合中实体对象的子级数据集合的初始参数为空;所述原始数据集合中的实体对象以线性结构存储;步骤2:在所述原始数据集合中,查找具有与所述一级实体对象的对象编码相同的父级编码的次级实体对象;步骤3:建立所述次级实体对象的数据编码,并将所述次级实体对象的数据编码作为参数写入所述一级实体对象的子级数据集合中;步骤4:将所述次级实体对象填充至过渡数据集合;步骤5:将所述过渡数据集合中的实体对象作为初级过渡实体对象,在所述原始数据集合中,查找具有与所述初级过渡实体对象的对象编码相同的父级编码的次级过渡实体对象;步骤6:建立所述次级过渡实体对象的数据编码,并将所述次级过渡实体对象的数据编码作为参数写入所述初...

【专利技术属性】
技术研发人员:周晓祥王海宁
申请(专利权)人:明算科技北京股份有限公司
类型:发明
国别省市:北京;11

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

1