树形结构的数据处理方法

文档序号:6542373阅读:1531来源:国知局
树形结构的数据处理方法
【专利摘要】本发明公开了一种树形结构的数据处理方法,包括以下几个步骤:1)提取待处理数据的公共内容建立树状节点基类;2)从树状节点基类派生所有子类;3)根据对应的子类实例化所有节点对象;4)将节点对象按邻接表的方式构建树状结构;5)将节点对象的地址指针以名称(ID)为索引存入红黑树;6)对红黑树进行遍历和按名称(ID)索引的操作。本发明能够高效方便的同时对树形结构中的数据进行遍历和单节点操作。
【专利说明】树形结构的数据处理方法
【技术领域】
[0001]本发明涉及计算机应用领域,尤其涉及一种树形结构的数据处理方法。
【背景技术】
[0002]在处理各种具有分层关系的数据时,往往采用树形结构存储,树形结构常用邻接表的形式存储。当处理树形结构中某一节点的数据时,需要首先遍历树形结构每一层查找到对应节点再进行处理。对数据处理按名称(ID)进行索引时,常用哈希表或红黑树。下面分别对邻接表和红黑树进行说明。
[0003]邻接表是链表的一种形式,每一个节点包含自己节点的内容和指向下一个内容的指针,用邻接表构建树,需要在每个节点中增加一个指向儿子节点和父节点(可选)的指针。这种结构很方便进行遍历操作。
[0004]红黑树是一种特殊的二叉查找平衡树,它将数据以二叉树的结构存储,对树中的任意一个节点来说,左子树内所有节点的关键字的值都要小于该节点的关键字,右子树内所有节点的关键字的值都大于该节点的关键字。同时,红黑树保证任意节点的左右子树高度之差不超过I。在红黑树内按关键字查找某个元素时的时间复杂度为O (log/?)。
[0005]上述两种方法都不能满足同时进行遍历操作和单节点操作的高效性和易编程实现的要求。邻接表能够方便的编程实现树形结构的遍历,但对单个节点操作时效率较低;红黑树只适合按名称(ID)索引单个节点。

【发明内容】

[0006]为了克服现有技术的不足,本发明提供一种树形结构中数据处理的方法。
[0007]本发明为解决以上问题,方案如下:
一种树形结构的数据处理方法,包括以下几个步骤:
1)提取待处理数据的公共内容建立树状节点基类;
2)从树状节点基类派生所有子类;
3)根据对应的子类实例化所有节点对象;
4)将节点对象按邻接表的方式构建树状结构;
5)将节点对象的地址指针以名称(ID)为索引存入红黑树;
6)对红黑树进行遍历和按名称(ID)索引的操作。
[0008] 所述步骤I)中,建立树状节点的基类是将所有树状节点共有的属性作为基类成员。
[0009]步骤3)中,所述的实例化是针对每个节点数据不同的属性,按照对应属性的子类进行对象的实例化。
[0010]步骤4)中,所述的构建树状结构具体如下,每个节点对象包含指向父节点的指针、指向下一个兄弟节点的指针和指向第一子节点的指针,步骤3 )中实例化的对象添加到树中时为指针赋值,并修改指向节点的指针值。[0011]本发明的有益效果:能够高效方便的同时对树形结构中的数据进行遍历和单节点操作。
【具体实施方式】
[0012]本发明提供的树形结构中数据处理方法的详细步骤如下:
根据属性关系中每层节点的属性提取出公共内容作为基类属性,基类中加入父节点指针、首子节点指针以及下一兄弟节点指针三个属性,提供公共的构造与析构方法。
[0013]根据每层节点中不同于公共属性的节点的附加属性建立不同的子类。子类的属性和方法一般多于基类。为某些子类不同于父类的同种行为的方法进行重写。
[0014]根据树形结构的层次实例化每个对象,将对象以邻接表的形式添加到树状结构中,同时将其在树状结构中存储的地址指针以名称(ID)为关键字存储于一颗红黑树中。
[0015]所有节点建立完之后可以对节点进行遍历和单独操作。
[0016]遍历时利用组合模式的性质可逐层进行树形结构的遍历。
[0017]单独操作时,以名称(ID)为索引查找红黑树中对应节点,存在返回对应节点在树形结构中的指针,不存在返回空值。根据返回的指针对单独节点进行实际操作。
【权利要求】
1.一种树形结构的数据处理方法,其特征在于,包括以下几个步骤: 1)提取待处理数据的公共内容建立树状节点基类; 2)从树状节点基类派生所有子类; 3)根据对应的子类实例化所有节点对象; 4)将节点对象按邻接表的方式构建树状结构; 5)将节点对象的地址指针以名称(ID)为索引存入红黑树; 6)对红黑树进行遍历和按名称(ID)索引的操作。
2.如权利要求1所述的一种树形结构的数据处理方法,其特征在于,所述步骤I)中,建立树状节点的基类是将所有树状节点共有的属性作为基类成员。
3.如权利要求1所述的一种树形结构的数据处理方法,其特征在于,步骤3)中,所述的实例化是针对每个节点数据不同的属性,按照对应属性的子类进行对象的实例化。
4.如权利要求1所述的一种树形结构的数据处理方法,其特征在于,步骤4)中,所述的构建树状结构具体如下,每个节点对象包含指向父节点的指针、指向下一个兄弟节点的指针和指向第一子节点的指针,步骤3)中实例化的对象添加到树中时为指针赋值,并修改指向节点的指针值。
【文档编号】G06F17/30GK103902700SQ201410126024
【公开日】2014年7月2日 申请日期:2014年4月1日 优先权日:2014年4月1日
【发明者】王友钊, 黄静, 温琪 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1