CN106326427A - 线性结构到树形结构的数据结构转换方法 - Google Patents
线性结构到树形结构的数据结构转换方法 Download PDFInfo
- Publication number
- CN106326427A CN106326427A CN201610721040.4A CN201610721040A CN106326427A CN 106326427 A CN106326427 A CN 106326427A CN 201610721040 A CN201610721040 A CN 201610721040A CN 106326427 A CN106326427 A CN 106326427A
- Authority
- CN
- China
- Prior art keywords
- entity object
- data
- data set
- entity
- transition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种线性结构到树形结构的数据结构转换方法,包括:在数据库的原始数据集合中查找一级数据中的一个一级实体对象和次级实体对象;建立次级实体对象的数据编码并写入一级实体对象的子级数据集合中;将次级实体对象填充至过渡数据集合并作为初级过渡实体对象,在原始数据集合中找具有与初级过渡实体对象的对象编码相同的父级编码的次级过渡实体对象;建立次级过渡实体对象的数据编码,并写入初级过渡实体对象的子级数据集合中;将次级过渡实体对象作为初级过渡实体对象填充至过渡数据集合,循环遍历过渡数据集合中的全部实体对象;根据实体对象的数据编码和子级数据集合将原始数据集合中线性结构存储的实体对象处理为树形数据结构输出。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种线性结构到树形结构的数据转换方法。
背景技术
随着信息时代的快速发展,客户对信息、数据的展现界面的要求也越来越高。以一个信息列表页面来说,以往的展现都是线性展现方式,但是在财务软件中对于财务指标、会计科目等一些需要以树形形态展现的方式,往往会给用户带来极大的困扰。
线性列表数据的读取和加载,一般都是根据查询语句到数据库中查询得到数据,把数据通过适配器加载到变量中,最后绑定到页面以线性列表形式呈现给用户。但是如果想要把数据库表中的以线性方式存储的支持树形结构查询的数据以树形形态呈现给用户,就需要对数据库查询出来的数据做很繁琐的解析,给客户的使用带来了极大的不便。
发明内容
有鉴于此,本发明提供了一种线性结构到树形结构的数据结构转换方法,可以将线性的数据结构转换为树形形态展现,满足用户多元化的需求,数据结构转换便捷高效,适用性好。
本发明实施例提供了一种线性结构到树形结构的数据结构转换方法,包括:
步骤1:在数据库的原始数据集合中查找一级数据中的一个一级实体 对象;所述实体对象具有属性信息,所述属性信息中至少包括对象编码、父级编码和子级数据集合;所述一级数据的父级编码为空;所述原始数据集合中实体对象的子级数据集合的初始参数为空;所述原始数据集合中的实体对象以线性结构存储;
步骤2:在所述原始数据集合中,查找具有与所述一级实体对象的对象编码相同的父级编码的次级实体对象;
步骤3:建立所述次级实体对象的数据编码,并将所述次级实体对象的数据编码作为参数写入所述一级实体对象的子级数据集合中;
步骤4:将所述次级实体对象填充至过渡数据集合;
步骤5:将所述过渡数据集合中的实体对象作为初级过渡实体对象,在所述原始数据集合中,查找具有与所述初级过渡实体对象的对象编码相同的父级编码的次级过渡实体对象;
步骤6:建立所述次级过渡实体对象的数据编码,并将所述次级过渡实体对象的数据编码作为参数写入所述初级过渡实体对象的子级数据集合中;
步骤7:将所述次级过渡实体对象作为初级过渡实体对象填充至过渡数据集合;重复执行步骤5-7,直至循环遍历所述过渡数据集合中的全部实体对象;
步骤8:根据所述实体对象的数据编码和子级数据集合,将所述原始数据集合中线性结构存储的实体对象处理为树形数据结构并输出。
优选的,在所述步骤4之后,所述方法还包括:
如果所述过渡数据集合为空,则继续在所述原始数据集合中查找一级数据中的下一个一级实体对象。
优选的,所述根据所述实体对象的数据编码和子级数据集合,将所述原始数据集合中线性结构存储的实体对象处理为树形数据结构并输出具体为:
当第二实体对象的数据编码为第一实体对象的子集数据集合中的参数,将所述第一实体对象作为父节点,第二实体对象作为第一实体对象的子节点从而建立树形数据结构。
优选的,所述输出具体为显示输出。
本发明提供的线性结构到树形结构的数据结构转换方法,可以将线性的数据结构转换为树形形态展现,满足用户多元化的需求,数据结构转换便捷高效,适用性好。
附图说明
图1为本发明实施例提供的线性结构到树形结构的数据结构转换方法流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面结合图1所示的线性结构到树形结构的数据结构转换方法流程图,对本发明实施例提供的数据结构转换方法进行详细说明。
如图1所示,本发明提供的线性结构到树形结构的数据结构转换方法主要包括如下步骤:
步骤1:在数据库的原始数据集合中查找一级数据中的一个一级实体对象;
具体的,原始数据集合中的实体对象以线性结构存储,以一个具体的例子所示即如表1所示。
部门编码 | 部门名称 | 级别 | 父级编码 | 子级数据集合 |
D101 | 某公司 | 1 | 默认为空 | |
D101101 | 技术部 | 2 | D101 | 默认为空 |
D101102 | 销售部 | 2 | D101 | 默认为空 |
D101101101 | ASP.NET组 | 3 | D101101 | 默认为空 |
D101102101 | 销售一部 | 3 | D101102 | 默认为空 |
表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、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明实施例的保护范围,凡在本发明实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (4)
1.一种线性结构到树形结构的数据结构转换方法,其特征在于,所述数据结构转换方法包括:
步骤1:在数据库的原始数据集合中查找一级数据中的一个一级实体对象;所述实体对象具有属性信息,所述属性信息中至少包括对象编码、父级编码和子级数据集合;所述一级数据的父级编码为空;所述原始数据集合中实体对象的子级数据集合的初始参数为空;所述原始数据集合中的实体对象以线性结构存储;
步骤2:在所述原始数据集合中,查找具有与所述一级实体对象的对象编码相同的父级编码的次级实体对象;
步骤3:建立所述次级实体对象的数据编码,并将所述次级实体对象的数据编码作为参数写入所述一级实体对象的子级数据集合中;
步骤4:将所述次级实体对象填充至过渡数据集合;
步骤5:将所述过渡数据集合中的实体对象作为初级过渡实体对象,在所述原始数据集合中,查找具有与所述初级过渡实体对象的对象编码相同的父级编码的次级过渡实体对象;
步骤6:建立所述次级过渡实体对象的数据编码,并将所述次级过渡实体对象的数据编码作为参数写入所述初级过渡实体对象的子级数据集合中;
步骤7:将所述次级过渡实体对象作为初级过渡实体对象填充至过渡数据集合;重复执行步骤5-7,直至循环遍历所述过渡数据集合中的全部实体对象;
步骤8:根据所述实体对象的数据编码和子级数据集合,将所述原始数据集合中线性结构存储的实体对象处理为树形数据结构并输出。
2.根据权利要求1所述的数据结构转换方法,其特征在于,在所述步骤4之后,所述方法还包括:
如果所述过渡数据集合为空,则继续在所述原始数据集合中查找一级数据中的下一个一级实体对象。
3.根据权利要求1所述的数据结构转换方法,其特征在于,所述根据所述实体对象的数据编码和子级数据集合,将所述原始数据集合中线性结构存储的实体对象处理为树形数据结构并输出具体为:
当第二实体对象的数据编码为第一实体对象的子集数据集合中的参数,将所述第一实体对象作为父节点,第二实体对象作为第一实体对象的子节点从而建立树形数据结构。
4.根据权利要求1-3任一所述的数据结构转换方法,其特征在于,所述输出具体为显示输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610721040.4A CN106326427B (zh) | 2016-08-24 | 2016-08-24 | 线性结构到树形结构的数据结构转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610721040.4A CN106326427B (zh) | 2016-08-24 | 2016-08-24 | 线性结构到树形结构的数据结构转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106326427A true CN106326427A (zh) | 2017-01-11 |
CN106326427B CN106326427B (zh) | 2019-08-06 |
Family
ID=57791971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610721040.4A Active CN106326427B (zh) | 2016-08-24 | 2016-08-24 | 线性结构到树形结构的数据结构转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106326427B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763322A (zh) * | 2018-05-02 | 2018-11-06 | 山东浪潮通软信息科技有限公司 | 一种实现树结构的方法及装置 |
CN108875028A (zh) * | 2018-06-22 | 2018-11-23 | 福建南威软件有限公司 | 一种对资源的搜索方法 |
CN109241151A (zh) * | 2017-06-29 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种数据结构的转换方法、装置及电子设备 |
US20190332604A1 (en) * | 2016-06-29 | 2019-10-31 | International Business Machines Corporation | System, method and recording medium for cognitive proximates |
CN110765123A (zh) * | 2018-07-09 | 2020-02-07 | 株式会社日立制作所 | 基于树形结构的材料数据的存储方法、装置和系统 |
CN111522819A (zh) * | 2020-04-24 | 2020-08-11 | 上海用天网络科技有限公司 | 一种树型结构数据汇总的方法及系统 |
CN112313711A (zh) * | 2018-06-27 | 2021-02-02 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6502101B1 (en) * | 2000-07-13 | 2002-12-31 | Microsoft Corporation | Converting a hierarchical data structure into a flat data structure |
CN1766886A (zh) * | 2004-10-25 | 2006-05-03 | 惠普开发有限公司 | 用于数据管理和/或转换的数据结构、数据库系统及方法 |
CN105279177A (zh) * | 2014-07-03 | 2016-01-27 | 北京联嘉众赢网络技术有限公司 | 一种数据结构转换方法及装置 |
-
2016
- 2016-08-24 CN CN201610721040.4A patent/CN106326427B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6502101B1 (en) * | 2000-07-13 | 2002-12-31 | Microsoft Corporation | Converting a hierarchical data structure into a flat data structure |
CN1766886A (zh) * | 2004-10-25 | 2006-05-03 | 惠普开发有限公司 | 用于数据管理和/或转换的数据结构、数据库系统及方法 |
CN105279177A (zh) * | 2014-07-03 | 2016-01-27 | 北京联嘉众赢网络技术有限公司 | 一种数据结构转换方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190332604A1 (en) * | 2016-06-29 | 2019-10-31 | International Business Machines Corporation | System, method and recording medium for cognitive proximates |
US11809433B2 (en) * | 2016-06-29 | 2023-11-07 | International Business Machines Corporation | Cognitive proximate calculations for a return item |
CN109241151A (zh) * | 2017-06-29 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种数据结构的转换方法、装置及电子设备 |
CN109241151B (zh) * | 2017-06-29 | 2022-05-10 | 阿里巴巴集团控股有限公司 | 一种数据结构的转换方法、装置及电子设备 |
CN108763322A (zh) * | 2018-05-02 | 2018-11-06 | 山东浪潮通软信息科技有限公司 | 一种实现树结构的方法及装置 |
CN108763322B (zh) * | 2018-05-02 | 2021-05-18 | 浪潮通用软件有限公司 | 一种实现树结构的方法及装置 |
CN108875028A (zh) * | 2018-06-22 | 2018-11-23 | 福建南威软件有限公司 | 一种对资源的搜索方法 |
CN112313711A (zh) * | 2018-06-27 | 2021-02-02 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 |
CN110765123A (zh) * | 2018-07-09 | 2020-02-07 | 株式会社日立制作所 | 基于树形结构的材料数据的存储方法、装置和系统 |
CN111522819A (zh) * | 2020-04-24 | 2020-08-11 | 上海用天网络科技有限公司 | 一种树型结构数据汇总的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106326427B (zh) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326427A (zh) | 线性结构到树形结构的数据结构转换方法 | |
US11789978B2 (en) | System and method for load, aggregate and batch calculation in one scan in a multidimensional database environment | |
US11797838B2 (en) | Efficient convolutional network for recommender systems | |
CN110427434B (zh) | 一种多维数据查询方法及装置 | |
US20230084389A1 (en) | System and method for providing bottom-up aggregation in a multidimensional database environment | |
US11609920B2 (en) | Ranking and presenting search engine results based on category-specific ranking models | |
US10169412B2 (en) | Selectivity estimation for query execution planning in a database | |
JP6825016B2 (ja) | 個人情報の非識別化方法および装置 | |
CN107402955A (zh) | 确定地理围栏的索引网格的方法和装置 | |
US20140025608A1 (en) | System and Method for Generating Legal Documents | |
CN105630803B (zh) | 文档型数据库建立索引的方法和装置 | |
US10552444B2 (en) | Visualizing changes in a multi-dimensional dataset using three-dimensional cubes | |
AU2017261143A1 (en) | Computer systems and methods for implementing in-memory data structures | |
Liu et al. | Zinc: Efficient indexing for skyline computation | |
JP7153420B2 (ja) | データベース中にグラフ情報を記憶するためのb木使用 | |
US11093541B2 (en) | Transforming an ontology query to an SQL query | |
CN103544109B (zh) | 一种组合测试用例生成方法 | |
CN110720097A (zh) | 图数据库中元组和边的功能性等价 | |
CN104572932A (zh) | 一种兴趣标签的确定方法及装置 | |
WO2024187779A1 (zh) | 业务数据存储方法、装置、计算机设备和存储介质 | |
CN106844468A (zh) | 面向多尺度多源海量遥感影像数据的管理方法 | |
KR101526514B1 (ko) | 데이터 웨어하우스 상의 온라인 분석 처리(olap) 연산의 최적화된 시퀀싱을 위한 하이퍼 격자 모델 | |
US9081578B1 (en) | System and method for graph conditioning with non-overlapping orderable values for efficient graph evaluation | |
CN104050264A (zh) | 一种生成sql语句的方法和装置 | |
WO2022152103A1 (en) | Information matching using subgraphs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |