线性结构到树形结构的数据结构转换方法与流程

文档序号:12598358阅读:1412来源:国知局
本发明涉及数据处理
技术领域
,尤其涉及一种线性结构到树形结构的数据转换方法。
背景技术
:随着信息时代的快速发展,客户对信息、数据的展现界面的要求也越来越高。以一个信息列表页面来说,以往的展现都是线性展现方式,但是在财务软件中对于财务指标、会计科目等一些需要以树形形态展现的方式,往往会给用户带来极大的困扰。线性列表数据的读取和加载,一般都是根据查询语句到数据库中查询得到数据,把数据通过适配器加载到变量中,最后绑定到页面以线性列表形式呈现给用户。但是如果想要把数据库表中的以线性方式存储的支持树形结构查询的数据以树形形态呈现给用户,就需要对数据库查询出来的数据做很繁琐的解析,给客户的使用带来了极大的不便。技术实现要素:有鉴于此,本发明提供了一种线性结构到树形结构的数据结构转换方法,可以将线性的数据结构转换为树形形态展现,满足用户多元化的需求,数据结构转换便捷高效,适用性好。本发明实施例提供了一种线性结构到树形结构的数据结构转换方法,包括:步骤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.NET组’的数据编码可编写为D1-1-1,并将D1-1-1写入到初级过渡实体对象D1-1的子级数据集合中。即如下表3所示。表3再例如,上述一级实体对象为初级过渡实体对象‘销售部’,其数据编码为D1-2,其次级过渡实体对象‘销售一部’的数据编码可编写为D1-2-1,并将D1-2-1写入到初级过渡实体对象D1-2的子级数据集合中。即如下表4所示。表4步骤8:将次级过渡实体对象作为初级过渡实体对象填充至过渡数据集合;步骤9:判断过渡数据集合是否为空。如果不为空,重复执行步骤6-9。如果为空,则执行步骤10,判断是否在原始数据集合中还有未进行数据结构转换的一级实体对象。如果有,执行步骤1;如果没有,执行步骤11。此步骤以保证循环遍历过渡数据集合中的全部实体对象。步骤11:根据实体对象的数据编码和子级数据集合,将所述原始数据集合中线性结构存储的实体对象处理为树形数据结构并输出。具体的,在原始数据集合中匹配实体对象的数据编码和子级数据集合中的参数,当第二实体对象的数据编码为第一实体对象的子集数据集合中的参数,将第一实体对象作为父节点,第二实体对象作为第一实体对象的子节点从而建立树形数据结构,并可以向用户进行显示输出。上述具体实例中表1的线性结构存储的实体对象,可以以下述表5的树形结构输出。表5本发明提供的线性结构到树形结构的数据结构转换方法,可以将线性的数据结构转换为树形形态展现,满足用户多元化的需求,数据结构转换便捷高效,适用性好。专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件来实现,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。具体地,所述运算和控制部分都可以通络逻辑硬件实现,其可以是使用集成电路工艺制造出来的逻辑集成电路,本实施例对此不作限定。结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或
技术领域
内所公知的任意其它形式的存储介质中。以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明实施例的保护范围,凡在本发明实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1