CN103902700A - 树形结构的数据处理方法 - Google Patents
树形结构的数据处理方法 Download PDFInfo
- Publication number
- CN103902700A CN103902700A CN201410126024.1A CN201410126024A CN103902700A CN 103902700 A CN103902700 A CN 103902700A CN 201410126024 A CN201410126024 A CN 201410126024A CN 103902700 A CN103902700 A CN 103902700A
- Authority
- CN
- China
- Prior art keywords
- node
- tree
- tree structure
- pointer
- data processing
- 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.)
- Pending
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种树形结构的数据处理方法,包括以下几个步骤:1)提取待处理数据的公共内容建立树状节点基类;2)从树状节点基类派生所有子类;3)根据对应的子类实例化所有节点对象;4)将节点对象按邻接表的方式构建树状结构;5)将节点对象的地址指针以名称(ID)为索引存入红黑树;6)对红黑树进行遍历和按名称(ID)索引的操作。本发明能够高效方便的同时对树形结构中的数据进行遍历和单节点操作。
Description
技术领域
本发明涉及计算机应用领域,尤其涉及一种树形结构的数据处理方法。
背景技术
在处理各种具有分层关系的数据时,往往采用树形结构存储,树形结构常用邻接表的形式存储。当处理树形结构中某一节点的数据时,需要首先遍历树形结构每一层查找到对应节点再进行处理。对数据处理按名称(ID)进行索引时,常用哈希表或红黑树。下面分别对邻接表和红黑树进行说明。
邻接表是链表的一种形式,每一个节点包含自己节点的内容和指向下一个内容的指针,用邻接表构建树,需要在每个节点中增加一个指向儿子节点和父节点(可选)的指针。这种结构很方便进行遍历操作。
红黑树是一种特殊的二叉查找平衡树,它将数据以二叉树的结构存储,对树中的任意一个节点来说,左子树内所有节点的关键字的值都要小于该节点的关键字,右子树内所有节点的关键字的值都大于该节点的关键字。同时,红黑树保证任意节点的左右子树高度之差不超过1。在红黑树内按关键字查找某个元素时的时间复杂度为O(log n)。
上述两种方法都不能满足同时进行遍历操作和单节点操作的高效性和易编程实现的要求。邻接表能够方便的编程实现树形结构的遍历,但对单个节点操作时效率较低;红黑树只适合按名称(ID)索引单个节点。
发明内容
为了克服现有技术的不足,本发明提供一种树形结构中数据处理的方法。
本发明为解决以上问题,方案如下:
一种树形结构的数据处理方法,包括以下几个步骤:
1)提取待处理数据的公共内容建立树状节点基类;
2)从树状节点基类派生所有子类;
3)根据对应的子类实例化所有节点对象;
4)将节点对象按邻接表的方式构建树状结构;
5)将节点对象的地址指针以名称(ID)为索引存入红黑树;
6)对红黑树进行遍历和按名称(ID)索引的操作。
所述步骤1)中,建立树状节点的基类是将所有树状节点共有的属性作为基类成员。
步骤3)中,所述的实例化是针对每个节点数据不同的属性,按照对应属性的子类进行对象的实例化。
步骤4)中,所述的构建树状结构具体如下,每个节点对象包含指向父节点的指针、指向下一个兄弟节点的指针和指向第一子节点的指针,步骤3)中实例化的对象添加到树中时为指针赋值,并修改指向节点的指针值。
本发明的有益效果:能够高效方便的同时对树形结构中的数据进行遍历和单节点操作。
具体实施方式
本发明提供的树形结构中数据处理方法的详细步骤如下:
根据属性关系中每层节点的属性提取出公共内容作为基类属性,基类中加入父节点指针、首子节点指针以及下一兄弟节点指针三个属性,提供公共的构造与析构方法。
根据每层节点中不同于公共属性的节点的附加属性建立不同的子类。子类的属性和方法一般多于基类。为某些子类不同于父类的同种行为的方法进行重写。
根据树形结构的层次实例化每个对象,将对象以邻接表的形式添加到树状结构中,同时将其在树状结构中存储的地址指针以名称(ID)为关键字存储于一颗红黑树中。
所有节点建立完之后可以对节点进行遍历和单独操作。
遍历时利用组合模式的性质可逐层进行树形结构的遍历。
单独操作时,以名称(ID)为索引查找红黑树中对应节点,存在返回对应节点在树形结构中的指针,不存在返回空值。根据返回的指针对单独节点进行实际操作。
Claims (4)
1. 一种树形结构的数据处理方法,其特征在于,包括以下几个步骤:
1)提取待处理数据的公共内容建立树状节点基类;
2)从树状节点基类派生所有子类;
3)根据对应的子类实例化所有节点对象;
4)将节点对象按邻接表的方式构建树状结构;
5)将节点对象的地址指针以名称(ID)为索引存入红黑树;
6)对红黑树进行遍历和按名称(ID)索引的操作。
2.如权利要求1所述的一种树形结构的数据处理方法,其特征在于,所述步骤1)中,建立树状节点的基类是将所有树状节点共有的属性作为基类成员。
3.如权利要求1所述的一种树形结构的数据处理方法,其特征在于,步骤3)中,所述的实例化是针对每个节点数据不同的属性,按照对应属性的子类进行对象的实例化。
4.如权利要求1所述的一种树形结构的数据处理方法,其特征在于,步骤4)中,所述的构建树状结构具体如下,每个节点对象包含指向父节点的指针、指向下一个兄弟节点的指针和指向第一子节点的指针,步骤3)中实例化的对象添加到树中时为指针赋值,并修改指向节点的指针值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410126024.1A CN103902700A (zh) | 2014-04-01 | 2014-04-01 | 树形结构的数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410126024.1A CN103902700A (zh) | 2014-04-01 | 2014-04-01 | 树形结构的数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103902700A true CN103902700A (zh) | 2014-07-02 |
Family
ID=50994022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410126024.1A Pending CN103902700A (zh) | 2014-04-01 | 2014-04-01 | 树形结构的数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902700A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809190A (zh) * | 2015-04-21 | 2015-07-29 | 浙江大学 | 一种树形结构数据的数据库存取方法 |
CN109344159A (zh) * | 2018-10-15 | 2019-02-15 | 北京天融信网络安全技术有限公司 | 用于ldap的查找方法、装置、电子设备及存储介质 |
CN110096234A (zh) * | 2019-04-30 | 2019-08-06 | 深圳忆联信息***有限公司 | 一种提高固态硬盘中写性能的方法及其*** |
CN110928882A (zh) * | 2019-11-27 | 2020-03-27 | 上海金仕达软件科技有限公司 | 一种基于改进红黑树的内存数据库索引方法及*** |
CN111694833A (zh) * | 2019-03-12 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
CN112785284A (zh) * | 2020-12-31 | 2021-05-11 | 银清科技有限公司 | 基于结构化文档的报文入库方法及装置 |
CN115801736A (zh) * | 2023-01-09 | 2023-03-14 | 北京天际友盟信息技术有限公司 | Ip地址库构建加载方法及装置、ip地址查询方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN101924758A (zh) * | 2010-07-28 | 2010-12-22 | 中兴通讯股份有限公司 | 一种媒体服务器及其提供服务的方法 |
CN102195959A (zh) * | 2010-03-11 | 2011-09-21 | 中兴通讯股份有限公司 | Sip信令的xml数据的解析方法及装置 |
US20130086127A1 (en) * | 2011-10-01 | 2013-04-04 | Oracle International Corporation | Compact tree node representation of an xml document |
-
2014
- 2014-04-01 CN CN201410126024.1A patent/CN103902700A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN102195959A (zh) * | 2010-03-11 | 2011-09-21 | 中兴通讯股份有限公司 | Sip信令的xml数据的解析方法及装置 |
CN101924758A (zh) * | 2010-07-28 | 2010-12-22 | 中兴通讯股份有限公司 | 一种媒体服务器及其提供服务的方法 |
US20130086127A1 (en) * | 2011-10-01 | 2013-04-04 | Oracle International Corporation | Compact tree node representation of an xml document |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809190A (zh) * | 2015-04-21 | 2015-07-29 | 浙江大学 | 一种树形结构数据的数据库存取方法 |
CN109344159A (zh) * | 2018-10-15 | 2019-02-15 | 北京天融信网络安全技术有限公司 | 用于ldap的查找方法、装置、电子设备及存储介质 |
CN111694833A (zh) * | 2019-03-12 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
CN111694833B (zh) * | 2019-03-12 | 2023-07-25 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
CN110096234A (zh) * | 2019-04-30 | 2019-08-06 | 深圳忆联信息***有限公司 | 一种提高固态硬盘中写性能的方法及其*** |
CN110928882A (zh) * | 2019-11-27 | 2020-03-27 | 上海金仕达软件科技有限公司 | 一种基于改进红黑树的内存数据库索引方法及*** |
CN110928882B (zh) * | 2019-11-27 | 2023-08-25 | 上海金仕达软件科技股份有限公司 | 一种基于改进红黑树的内存数据库索引方法及*** |
CN112785284A (zh) * | 2020-12-31 | 2021-05-11 | 银清科技有限公司 | 基于结构化文档的报文入库方法及装置 |
CN115801736A (zh) * | 2023-01-09 | 2023-03-14 | 北京天际友盟信息技术有限公司 | Ip地址库构建加载方法及装置、ip地址查询方法及装置 |
CN115801736B (zh) * | 2023-01-09 | 2023-04-18 | 北京天际友盟信息技术有限公司 | Ip地址库构建加载方法及装置、ip地址查询方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103902700A (zh) | 树形结构的数据处理方法 | |
US9996581B2 (en) | Real-time saved-query updates for a large graph | |
CN104809190B (zh) | 一种树形结构数据的数据库存取方法 | |
CN102867059A (zh) | 一种树形结构中数据的处理方法和*** | |
US11687509B2 (en) | Computer implemented method for creating database structures without knowledge of functioning of relational database system | |
CN106933833B (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
US20150278268A1 (en) | Data encoding and corresponding data structure | |
CN104504001B (zh) | 面向海量分布式关系数据库的游标构造方法 | |
EP2784699A1 (en) | Computer-implemented method for storing unlimited amount of data as a mind map in relational database systems | |
CN102609490B (zh) | 一种面向列存储dwms的b+树索引方法 | |
CN101673307A (zh) | 空间数据索引方法及*** | |
US11269954B2 (en) | Data searching method of database, apparatus and computer program for the same | |
CN104268295A (zh) | 一种数据查询方法及装置 | |
CN103123650A (zh) | 一种基于整数映射的xml数据库全文索引方法 | |
Wang et al. | Distributed storage and index of vector spatial data based on HBase | |
US8892566B2 (en) | Creating indexes for databases | |
CN103365992A (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN103678550A (zh) | 一种基于动态索引结构的海量数据实时查询方法 | |
CN103092992B (zh) | 基于Key/Value型NoSQL数据库的矢量数据先序四叉树编码和索引方法 | |
CN104077385A (zh) | 一种文件的分类及检索方法 | |
CN110019384A (zh) | 一种血缘数据的获取方法、提供血缘数据的方法及装置 | |
CN103955514A (zh) | 一种基于Lucene倒排索引的图像特征索引方法 | |
CN104915405A (zh) | 一种基于多层次的微博查询扩展方法 | |
US20200159722A1 (en) | Presenting updated data using persisting views | |
CN104537129A (zh) | 一种基于Web的数据库虚拟存储处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140702 |
|
WD01 | Invention patent application deemed withdrawn after publication |