CN106326427B - 线性结构到树形结构的数据结构转换方法 - Google Patents
线性结构到树形结构的数据结构转换方法 Download PDFInfo
- Publication number
- CN106326427B CN106326427B CN201610721040.4A CN201610721040A CN106326427B CN 106326427 B CN106326427 B CN 106326427B CN 201610721040 A CN201610721040 A CN 201610721040A CN 106326427 B CN106326427 B CN 106326427B
- Authority
- CN
- China
- Prior art keywords
- entity object
- data
- entity
- data set
- level
- 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.)
- Active
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 (3)
1.一种线性结构到树形结构的数据结构转换方法,其特征在于,所述数据结构转换方法包括:
步骤1:在数据库的原始数据集合中查找一级数据中的一个一级实体对象;所述实体对象具有属性信息,所述属性信息中至少包括对象编码、父级编码和子级数据集合;所述一级数据的父级编码为空;所述原始数据集合中实体对象的子级数据集合的初始参数为空;所述原始数据集合中的实体对象以线性结构存储;
步骤2:在所述原始数据集合中,查找具有与所述一级实体对象的对象编码相同的父级编码的次级实体对象;
步骤3:建立所述次级实体对象的数据编码,并将所述次级实体对象的数据编码作为参数写入所述一级实体对象的子级数据集合中;
步骤4:将所述次级实体对象填充至过渡数据集合;
步骤5:将所述过渡数据集合中的实体对象作为初级过渡实体对象,在所述原始数据集合中,查找具有与所述初级过渡实体对象的对象编码相同的父级编码的次级过渡实体对象;
步骤6:建立所述次级过渡实体对象的数据编码,并将所述次级过渡实体对象的数据编码作为参数写入所述初级过渡实体对象的子级数据集合中;
步骤7:将所述次级过渡实体对象作为初级过渡实体对象填充至过渡数据集合;重复执行步骤5-7,直至循环遍历所述过渡数据集合中的全部实体对象;
步骤8:根据所述实体对象的数据编码和子级数据集合,将所述原始数据集合中线性结构存储的实体对象处理为树形数据结构并输出;
其中,所述步骤8具体为:
当第二实体对象的数据编码为第一实体对象的子集数据集合中的参数,将所述第一实体对象作为父节点,第二实体对象作为第一实体对象的子节点从而建立树形数据结构。
2.根据权利要求1所述的数据结构转换方法,其特征在于,在所述步骤4之后,所述方法还包括:
如果所述过渡数据集合为空,则继续在所述原始数据集合中查找一级数据中的下一个一级实体对象。
3.根据权利要求1-2任一所述的数据结构转换方法,其特征在于,所述输出具体为显示输出。
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 CN106326427A (zh) | 2017-01-11 |
CN106326427B true 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) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10409824B2 (en) * | 2016-06-29 | 2019-09-10 | International Business Machines Corporation | System, method and recording medium for cognitive proximates |
CN109241151B (zh) * | 2017-06-29 | 2022-05-10 | 阿里巴巴集团控股有限公司 | 一种数据结构的转换方法、装置及电子设备 |
CN108763322B (zh) * | 2018-05-02 | 2021-05-18 | 浪潮通用软件有限公司 | 一种实现树结构的方法及装置 |
CN108875028A (zh) * | 2018-06-22 | 2018-11-23 | 福建南威软件有限公司 | 一种对资源的搜索方法 |
CA3104630A1 (en) * | 2018-06-27 | 2020-01-02 | Panasonic Intellectual Property Corporation Of America | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device |
CN110765123A (zh) * | 2018-07-09 | 2020-02-07 | 株式会社日立制作所 | 基于树形结构的材料数据的存储方法、装置和系统 |
CN111522819A (zh) * | 2020-04-24 | 2020-08-11 | 上海用天网络科技有限公司 | 一种树型结构数据汇总的方法及系统 |
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 | 北京联嘉众赢网络技术有限公司 | 一种数据结构转换方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106326427A (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326427B (zh) | 线性结构到树形结构的数据结构转换方法 | |
US11797838B2 (en) | Efficient convolutional network for recommender systems | |
US20230185827A1 (en) | System and method for enabling multiple parents with weights in a multidimensional database environment | |
CN107402955B (zh) | 确定地理围栏的索引网格的方法和装置 | |
JP6825016B2 (ja) | 個人情報の非識別化方法および装置 | |
JP5626733B2 (ja) | 個人情報匿名化装置及び方法 | |
CN105808553A (zh) | 数据库迁移方法及其装置 | |
US9619657B2 (en) | Method and apparatus for storing redeem code, and method and apparatus for verifying redeem code | |
CN110442580B (zh) | 一种区块链状态数据存储方法、设备和存储介质 | |
US10922337B2 (en) | Clustering of data records with hierarchical cluster IDs | |
CN110909540B (zh) | 短信垃圾新词识别方法、装置及电子设备 | |
US20160203228A1 (en) | Filtering data objects | |
Liu et al. | Zinc: Efficient indexing for skyline computation | |
US20210263903A1 (en) | Multi-level conflict-free entity clusters | |
Maity et al. | A framework to convert NoSQL to relational model | |
AU2017261143A1 (en) | Computer systems and methods for implementing in-memory data structures | |
CN111353838A (zh) | 自动化校验商品类目的方法和装置 | |
WO2007060092A1 (en) | Generation of a categorisation scheme | |
CN103544109B (zh) | 一种组合测试用例生成方法 | |
CN110134646A (zh) | 知识平台服务数据存储与集成方法及系统 | |
CN112199577B (zh) | 一种数据查询方法、装置及电子设备 | |
Chatterjee et al. | Exploiting topological structures for graph compression based on quadtrees | |
CN115934730B (zh) | 数据处理方法和装置、介质和计算机设备 | |
US9081578B1 (en) | System and method for graph conditioning with non-overlapping orderable values for efficient graph evaluation | |
Chatterjee et al. | Classifying stocks using P-Trees and investor sentiment |
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 |