CN114328450A - 一种生成树形结构的方法及设备 - Google Patents
一种生成树形结构的方法及设备 Download PDFInfo
- Publication number
- CN114328450A CN114328450A CN202111525857.1A CN202111525857A CN114328450A CN 114328450 A CN114328450 A CN 114328450A CN 202111525857 A CN202111525857 A CN 202111525857A CN 114328450 A CN114328450 A CN 114328450A
- Authority
- CN
- China
- Prior art keywords
- node
- root node
- child
- data
- root
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的目的是提供一种生成树形结构的方法及设备,本申请通过构建一个用于不同应用场景的树形结构对象,并设置树形结构对象的关键属性;获取待处理的列表数据;调用树形结构对象及其关键属性,对列表数据依序进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据;基于列表数据的父节点、至少一个根节点及其对应的根节点数据和每个根节点对应的各级子节点及其对应的子节点数据,为列表数据构建对应的目标树形结构,实现了树形结构对象和数据逻辑关系的复用,达到了针对不同场景的列表数据,可以继承统一的树形结构对象。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种生成树形结构的方法及设备。
背景技术
随着大数据时代的到来,人们的生活方式也逐渐发展为数字化生活。在数字化生活中,存在多元化且相互交错的信息数据,单独的一对一的数据列表明显无法支撑数字化的发展,所以经常将数据列表封装成树形结构,然后传输至前端,从而实现多元化信息的存储和运用。但在现有技术中,封装的树形结构每次都需要定义一套树形结构的实体对象,同时,遍历循环所有数据,找到各数据的父子节点,把父子数据关联,此时如果再生成一套新的树形结构,则需要再次定义一套树形结构的实体对象,并且前一个实体对象的逻辑代码也将无法使用,显然,将数据列表封装成树形结构时,树形结构对象和遍历数据的逻辑代码不能重复使用,明显增加了数据列表处理的时间,使得数据列表的存储和运用变得繁琐,还加大了大数据发展的压力。
发明内容
本申请的一个目的是提供一种生成树形结构的方法及设备,实现了多套数据转换成树形结构时,树形结构对象和逻辑代码的复用,同时,将指定数据设置到某个数据节点下。
根据本申请的一个方面,提供了一种生成树形结构的方法,其中,所述方法包括:
构建一个用于不同应用场景的树形结构对象,并设置所述树形结构对象的关键属性;
获取待处理的列表数据;
调用所述树形结构对象及其关键属性,对所述列表数据依序进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据;
基于所述至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据,为所述列表数据构建对应的目标树形结构。
进一步地,上述方法中,所述调用所述树形结构对象及其关键属性,对所述列表数据依序进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据,包括:
调用所述树形结构对象及其关键属性,采用迭代循环的方式遍历所述列表数据中的所有数据,得到所述列表数据中的所有的根节点数据;
基于所述列表数据中的所有的根节点数据,查找并构建至少一个根节点及其对应的根节点数据;
将所述所有的根节点数据从所述列表数据中删除,得到处理后的列表数据;
基于所述至少一个根节点,对所述处理后的列表数据依序进行遍历根节点、查找子节点及子节点递归处理,得到每个所述根节点对应的各级子节点及其对应的子节点数据。
进一步地,上述方法中,所述基于所述至少一个根节点,对所述处理后的列表数据依序进行遍历根节点、查找子节点及子节点递归处理,得到每个所述根节点对应的各级子节点及其对应的子节点数据,包括:
采样迭代循环的方式,遍历所述至少一个根节点,对每个所述根节点重复如下操作,直至得到每个所述根节点对应的各级子节点及其对应的子节点数据:
分别判断所述处理后的列表数据中的每条数据对应节点的PID,是否与所述根节点的ID匹配,
若一致,则确定所述根节点的第一子节点,并将所述处理后的列表数据中的、匹配到的一条或多条数据,确定为所述根节点的第一子节点对应的子节点数据;
根据所述根节点的第一子节点及其对应的子节点数据,确定所述根节点对应的各级子节点及其对应的子节点数据。
进一步地,上述方法中,所述根据所述根节点的第一子节点及其对应的子节点数据,确定所述根节点对应的各级子节点及其对应的子节点数据,包括:
根据所述根节点的第一子节点及其对应的子节点数据,采用层层递归的方式,确定出所述第一子节点的其他各级子节点及其对应的子节点数据;
基于所述根节点的第一子节点及其对应的子节点数据和所述第一子节点的其他各级子节点及其对应的子节点数据,得到所述根节点对应的各级子节点及其对应的子节点数据。
进一步地,上述方法中,所述树形结构对象的关键属性包括:节点ID、数据PID、数据标识及至少一个子对象。
根据本申请的另一方面,还提供了一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述一种生成树形结构的方法。
根据本申请的另一方面,还提供了一种生成树形结构的设备,其中,该设备包括:
一个或多个处理器;
计算机可读介质,用于存储一个或多个计算机可读指令,
当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述一种生成树形结构的方法。
与现有技术相比,本申请通过构建一个用于不同应用场景的树形结构对象,并设置所述树形结构对象的关键属性;获取待处理的列表数据;调用所述树形结构对象及其关键属性,对所述列表数据依序进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据;基于所述至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据,为所述列表数据构建对应的目标树形结构,通过构建树形结构对象模型,实现了树形结构对象和数据逻辑关系的复用,达到了针对不同场景的列表数据,可以继承统一的树形结构对象,将数据列表封装成树形结构,加快应用场景中数据转换的速度和项目开发中整体的效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请的一种生成树形结构的方法的实际流程示意图;
图2示出根据本申请一个方面的一种生成树形结构的方法的流程示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图1所示,本申请的一个方面提出了一种生成树形结构方法的实际流程示意图,其中,所述方法包括步骤S11、步骤S12、步骤S13及步骤S14,具体包括如下步骤:
步骤S11,构建一个用于不同应用场景的树形结构对象,并设置所述树形结构对象的关键属性,在此,所述树形结构对象的关键属性包括:节点ID、节点PID及至少一个子对象所形成的的子对象集合。
例如,构建用于不同应用场景的树形结构对象,其中树形结构中存在根节点1,根节点2,根节点3,……,根节点X,其中,根节点1的节点ID为1,根节点2的节点ID为2,根节点3的节点ID为3,……,根节点X的节点ID为X,并且所有根据的节点PID均为-1。根节点1的第一子节点集合有子节点11,子节点12,子节点13,……,子节点1N,其中,子节点11的节点ID为11,子节点12的节点ID为12,子节点13的节点ID为13,……,子节点1N的节点ID为1N,并且根节点1的所有第一子节点集合中节点的节点PID均为1;根节点2的第一子节点集合有子节点21,子节点22,子节点23,……,子节点2M,其中,子节点21的节点ID为21,子节点22的节点ID为22,子节点23的节点ID为23,……,子节点2M的节点ID为2M,并且根节点2的所有第一子节点集合中节点的节点PID均为2;……;根节点X的第一子节点集合中有子节点X1,子节点X2,子节点X3,……,子节点XR,其中,子节点X1的节点ID为X1,子节点X2的节点ID为X2,子节点X3的节点ID为X3,……,子节点XR的节点ID为XR,并且根节点X的所有第一子节点集合中节点的节点PID均为X。以此类推,得到多节点和多级的树形结构对象,显然,多节点和多级的树形结构满足不同列表数据的需求,无需根据应用场景的不同,重复构建树形结构,加快了项目开发的进程。
步骤S12,获取待处理的列表数据。
步骤S13,调用所述树形结构对象及其关键属性,对所述列表数据依序进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据。
步骤S14,基于所述列表数据的父节点、所述至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据,为所述列表数据构建对应的目标树形结构。
通过上述步骤S11至步骤S14,实现了在不同的应用场景下,多种数据列表利用统一的树形结构和相同的数据处理方法得到目标树形结构,达到树形结构和数据关系的重复利用,方便了项目开发中数据形式之间的转换,从而提高项目开发的效率。
例如,构建一个用于不同应用场景的树形结构对象,其中,树形结构中存在根节点1,根节点2,根节点3,……,根节点X,其中,根节点1的节点ID为1,根节点2的节点ID为2,根节点3的节点ID为3,……,根节点X的节点ID为X,并且所有根据的节点PID均为-1。根节点1的第一子节点集合有子节点11,子节点12,子节点13,……,子节点1N,其中,子节点11的节点ID为11,子节点12的节点ID为12,子节点13的节点ID为13,……,子节点1N的节点ID为1N,并且根节点1的所有第一子节点集合中节点的节点PID均为1;根节点2的第一子节点集合有子节点21,子节点22,子节点23,……,子节点2M,其中,子节点21的节点ID为21,子节点22的节点ID为22,子节点23的节点ID为23,……,子节点2M的节点ID为2M,并且根节点2的所有第一子节点集合中节点的节点PID均为2;……;根节点X的第一子节点集合中有子节点X1,子节点X2,子节点X3,……,子节点XR,其中,子节点X1的节点ID为X1,子节点X2的节点ID为X2,子节点X3的节点ID为X3,……,子节点XR的节点ID为XR,并且根节点X的所有第一子节点集合中节点的节点PID均为X,以此类推,构建得到根节点的各级子节点以形成树形结构对象。
获取待处理的列表数据[95,理科,英语,数学,物理,56,语文,文科],此时,对待处理的列表数据[95,理科,英语,数学,物理,56,语文,文科]进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到待处理的列表数据[95,理科,英语,数学,物理,56,语文,文科]中存在根节点1和根节点2,并且根节点1对应的根节点数据为理科,根节点2对应的根节点数据为文科,根节点1对应的第一级子节点存在两个数据,即,第一级子节点11和第一级子节点12,其中,第一级子节点11对应的子节点数据为物理和第一级子节点12对应的子节点数据为数学,根节点1对应的第二级子节点存在一个数据,即,第二级子节点111,其中,第二级子节点111对应的子节点数据为95,根节点2对应的第一级子节点存在两个数据,即,第一级子节点21和第一级子节点22,其中,第一级子节点21对应的子节点数据为英语和第一级子节点22对应的子节点数据为语文,根节点2对应的第二级子节点存在一个数据,即,第二级子节点211,其中,第二级子节点211对应的子节点数据为56,从而得到列表数据[95,理科,英语,数学,物理,56,语文,文科]对应的目标树形结构。
接着本申请上述实施例,所述步骤S13调用所述树形结构对象及其关键属性,对所述列表数据依序进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据,具体包括:
调用所述树形结构对象及其关键属性,采用迭代循环的方式遍历所述列表数据中的所有数据,得到所述列表数据中的所有的根节点数据;
基于所述列表数据中的所有的根节点数据,查找并构建至少一个根节点及其对应的根节点数据;
将所述所有的根节点数据从所述列表数据中删除,得到处理后的列表数据;
基于所述至少一个根节点,对所述处理后的列表数据依序进行遍历根节点、查找子节点及子节点递归处理,得到每个所述根节点对应的各级子节点及其对应的子节点数据。
例如,存在树形结构对象,调用树形结构对象及其关键属性,对待处理的列表数据[教务处,舞蹈,美术,比赛,办公室,长跑,短跑,音乐,2000米,艺术]采用迭代循环的方式遍历所述列表数据中的所有数据,得到待处理的列表数据[教务处,舞蹈,美术,比赛,办公室,长跑,短跑,音乐,2000米,艺术]中存在三个根节点数据,分别是教务处,艺术,比赛;
此时创建三个根节点,分别是根节点1,根节2和根节点3,并且根节点1对应的根节点数据为教务处,根节2对应的根节点数据为艺术和根节点3对应的根节点数据为比赛;
将根节点数据从待处理的列表数据中删除,即,将教务处,艺术,比赛从待处理的列表数据[教务处,舞蹈,美术,比赛,办公室,长跑,短跑,音乐,2000米,艺术]中删除,得到处理后的列表数据[舞蹈,美术,办公室,长跑,短跑,音乐,2000米];
此时,对处理后的列表数据[舞蹈,美术,办公室,长跑,短跑,音乐,2000米]进行遍历根节点、查找子节点及节点递归处理,得到根节点1存在一个第一级子节点,并且根节点1的第一级子节点11对应的子节点数据为办公室,根节点2存在三个第一级子节点,并且根节点2的第一级子节点21对应的子节点数据为舞蹈,第一级子节点22对应的子节点数据为美术和第一级子节点23对应的子节点数据为音乐,根节点3存在两个第一级子节点和一个第二级子节点,并且根节点3的第一级子节点31对应的数据为长跑,第一级子节点32对应的数据为短跑和根节点3的第二级子节点311对应的数据为1000米。
本实施例中,在处理列表数据时,采用迭代循环的方式,可以移除掉当前数据,为后面迭代循环提高效率,从而使得数据转换速度提升。
接着本申请上述实施例,所述步骤S13中的基于所述至少一个根节点,对所述处理后的列表数据依序进行遍历根节点、查找子节点及子节点递归处理,得到每个所述根节点对应的各级子节点及其对应的子节点数据,具体包括:
采样迭代循环的方式,遍历所述至少一个根节点,对每个所述根节点重复如下操作,直至得到每个所述根节点对应的各级子节点及其对应的子节点数据:
分别判断所述处理后的列表数据中的每条数据对应的节点的PID,是否与所述根节点的ID匹配,
若一致,则确定所述根节点的第一子节点,并将所述处理后的列表数据中的、匹配到的一条或多条数据,确定为所述根节点的第一子节点对应的子节点数据;
根据所述根节点的第一子节点及其对应的子节点数据,确定所述根节点对应的各级子节点及其对应的子节点数据。
例如,创建树形结构对象,获取列表数据[平板,手机,苹果,小米,联想,华为,移动设备],调用树形结构对象及其关键属性,对待处理的列表数据[平板,手机,苹果,小米,联想,华为,移动设备]进行迭代处理,查找得出根节点数据为移动设备,此时创建根节点1,其中,根节点1的ID为1,PID为-1,将根节点数据从待处理的列表数据中删除,即,将移动设备从待处理的列表数据[平板,手机,苹果,小米,联想,华为,移动设备]中删除,得到处理后的列表数据[平板,手机,苹果,小米,联想,华为],此时,对待处理的列表数据进行遍历根节点、查找子节点及节点递归处理,得到数据:手机对应的子节点ID为11,PID为1,与根节点的ID匹配,是根节点1的第一级子节点;数据:平板对应的子节点ID为12,PID为1,与根节点的ID匹配,是根节点1的第一级子节点;数据:华为对应的子节点ID为111,PID为11,与根节点的第一级子节点11匹配,是根节点的第二级子节点;数据:小米的子节点ID为112,PID为11,与根节点的第一级子节点11匹配,是根节点的第二级子节点;数据:苹果的子节点ID为121,PID为12,与根节点的第一级子节点12匹配,是根节点的第二级子节点;数据:联想的子节点ID为122,PID为12,与根节点的第一级子节点12匹配,是根节点的第二级子节点,得到所述列表数据:[平板,手机,苹果,小米,联想,华为,移动设备]中存在根节点1对应有两个第一级子节点和四个第二级子节点,并且两个第一级子节点数据为手机和平板,四个第二级子节点数据为华为、小米、苹果和联想,利用根数据的节点ID和列表数据的节点PID一致的逻辑运算,实现逻辑关系的搭建,解决了数据转换成树形结构时,逻辑关系无法复用的问题。
接着本申请上述实施例,所述根据所述根节点的第一子节点及其对应的子节点数据,确定所述根节点对应的各级子节点及其对应的子节点数据,具体包括:根据所述根节点的第一子节点及其对应的子节点数据,采用层层递归的方式,确定出所述第一子节点的其他各级子节点及其对应的子节点数据;基于所述根节点的第一子节点及其对应的子节点数据和所述第一子节点的其他各级子节点及其对应的子节点数据,得到所述根节点对应的各级子节点及其对应的子节点数据,实现了对根节点对应的各级子节点及其对应的子节点数据的递归和确定。
在本申请一优选实施例中,获取得到待处理的列表数据为[56,30,51,45,81,18,49],此时,调用树形结构对象及其关键属性,对列表数据[56,30,51,45,81,18,49]进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到待处理的列表数据[56,30,51,45,81,18,49]中存在一个根节点1,并且根节点1对应的根节点数据为49,根节点1对应的第一级子节点存在两个数据,即,第一级子节点11和第一级子节点12,其中,第一级子11对应的子节点数据为30,第一级子节点12对应的子节点数据为56,根节点1对应的第二级子节点存在四个数据,即,第二级子节点111,第二级子节点112,第二级子节点121和第二级子节点122,其中,第二级子节点111对应的子节点数据为18,第二级子节点112对应的子节点数据为45,第二级子节点121对应的子节点数据为51和第二级子节点122对应的子节点数据为81,显然,通过数据处理,得到每组待处理的列表数据中各个数据之间的逻辑关系,利用简单、统一的方法实现逻辑顺序的整理,达到数据逻辑关系的复用效果。
接着本申请上述实施例,所述树形结构对象的关键属性包括:节点ID、节点PID及至少一个子对象,在此,本申请可以根据树形结构对象中每个节点的节点ID实现新增节点的添加、节点的删除。例如,创建树形结构对象,获取列表数据[1,2,3],调用树形结构对象及其关键属性,对待处理的列表数据[1,2,3]进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到待处理的列表数据[1,2,3]中存在根节点1,并且根结点1对应的节点ID为1,节点PID为-1,同时,根节点1对应的根节点数据为1,根节点1对应的第一级子节点存在两个数据,即,第一级子节点11和第一级子节点12,并且第一级子结点11对应的节点ID为11,节点PID为1,第一级子结点12对应的节点ID为12,节点PID为1,其中,第一级子节点11对应的子节点数据为2和第一级子节点12对应的子节点数据为3,形成列表数据[1,2,3]对应的目标树形结构,此时,根据用户需求,将数据4插入到数据2的第一级子节点中,并删除数据3,遍历树形结构,找到数据2对应的节点为节点11,此时将数据4插入到数据2的第一级子节点111,实现新增节点的添加;找到数据3对应的节点为节点12,此时将节点12删除,实现节点的删除,显然,根据用户不同需求,可对指定数据进行重新设置,实现将指定数据设置为某个节点的子节点,使得树形结构对象使用更具有灵活性。
在实际应用场景中,本申请通过引入jar(Java归档,Java Archive)包或者内部指定maven(项目对象模型)坐标,引入依赖,针对不同场景的树形结构,调用统一树形结构对象和装置提供的公共方法,即可完成树形结构数据的转换,整体架构图如图2所示:
封装一个适应于各种场景的树形结构对象,在对象内部,定义出树形结构的关键属性,如节点ID、节点PID及子对象集合等关键信息,在各种应用场景中具体使用时,只需调用树形结构对象,赋初始值。同时,调用公共方法,对列表数据进行处理,先定义出专门存储根节点数据的集合。采用迭代循环的方式遍历所有列表数据,把根节点数据存入根节点数据的集合中,接着把根节点从列表数据中移除。接着继续采用迭代循环的方式,对根节点数据集合数据遍历,用根节点数据对应的节点ID和列表数据的各个数据对应的PID做比较。匹配根节点对应的数据下面的子节点对应的数据。继续采用递归的方式,找出子节点对应的数据下面的子节点对应的数据,层层递归,最终构建出目标树形结构,实现了利用JAVA对象间地址引用的特点,构建出适用各种场景的通用树形结构,在处理列表数据时,采用迭代循环的方式,可以移除掉当前数据,为后面迭代循环提高效率,最后采用递归的算法没找到各层节点的子数据,最终封装成树形结构,解决了多套数据转换成树形结构时,树形结构对象和数据逻辑不能复用的问题。
根据本申请的另一方面,还提供了一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述一种生成树形结构的方法。
根据本申请的另一方面,还提供了一种生成树形结构的设备,其中,该设备包括:
一个或多个处理器;
计算机可读介质,用于存储一个或多个计算机可读指令,
当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述一种生成树形结构的方法。
在此,所述一种生成树形结构的设备中的各实施例的详细内容,具体可参见上述一种生成树形结构的方法的实施例的对应部分,在此,不再赘述。
综上所述,本申请通过构建一个用于不同应用场景的树形结构对象,并设置所述树形结构对象的关键属性;获取待处理的列表数据;调用所述树形结构对象及其关键属性,对所述列表数据依序进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据;基于所述列表数据的父节点、所述至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据,为所述列表数据构建对应的目标树形结构,通过构建树形结构对象模型,实现了树形结构对象和数据逻辑关系的复用,达到了针对不同场景的列表数据,可以继承统一的树形结构对象,将数据列表封装成树形结构,加快应用场景中数据转换的速度和项目开发中整体的效率。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (7)
1.一种生成树形结构的方法,其中,所述方法包括:
构建一个用于不同应用场景的树形结构对象,并设置所述树形结构对象的关键属性;
获取待处理的列表数据;
调用所述树形结构对象及其关键属性,对所述列表数据依序进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据;
基于所述至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据,为所述列表数据构建对应的目标树形结构。
2.根据权利要求1所述的方法,其中,所述调用所述树形结构对象及其关键属性,对所述列表数据依序进行迭代处理、查找根节点、遍历根节点、查找子节点及子节点递归处理,得到至少一个根节点及其对应的根节点数据和每个所述根节点对应的各级子节点及其对应的子节点数据,包括:
调用所述树形结构对象及其关键属性,采用迭代循环的方式遍历所述列表数据中的所有数据,得到所述列表数据中的所有的根节点数据;
基于所述列表数据中的所有的根节点数据,查找并构建至少一个根节点及其对应的根节点数据;
将所述所有的根节点数据从所述列表数据中删除,得到处理后的列表数据;
基于所述至少一个根节点,对所述处理后的列表数据依序进行遍历根节点、查找子节点及子节点递归处理,得到每个所述根节点对应的各级子节点及其对应的子节点数据。
3.根据权利要求2所述的方法,其中,所述基于所述至少一个根节点,对所述处理后的列表数据依序进行遍历根节点、查找子节点及子节点递归处理,得到每个所述根节点对应的各级子节点及其对应的子节点数据,包括:
采样迭代循环的方式,遍历所述至少一个根节点,对每个所述根节点重复如下操作,直至得到每个所述根节点对应的各级子节点及其对应的子节点数据:
分别判断所述处理后的列表数据中的每条数据对应节点的PID,是否与所述根节点的ID匹配,
若一致,则确定所述根节点的第一子节点,并将所述处理后的列表数据中的、匹配到的一条或多条数据,确定为所述根节点的第一子节点对应的子节点数据;
根据所述根节点的第一子节点及其对应的子节点数据,确定所述根节点对应的各级子节点及其对应的子节点数据。
4.根据权利要求3所述的方法,其中,所述根据所述根节点的第一子节点及其对应的子节点数据,确定所述根节点对应的各级子节点及其对应的子节点数据,包括:
根据所述根节点的第一子节点及其对应的子节点数据,采用层层递归的方式,确定出所述第一子节点的其他各级子节点及其对应的子节点数据;
基于所述根节点的第一子节点及其对应的子节点数据和所述第一子节点的其他各级子节点及其对应的子节点数据,得到所述根节点对应的各级子节点及其对应的子节点数据。
5.根据权利要求1至4中任一项所述的方法,其中,所述树形结构对象的关键属性包括:节点ID、节点PID及至少一个子对象。
6.一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如权利要求1至5中任一项所述的方法。
7.一种生成树形结的设备,其中,该设备包括:
一个或多个处理器;
计算机可读介质,用于存储一个或多个计算机可读指令,
当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1或5所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111525857.1A CN114328450A (zh) | 2021-12-14 | 2021-12-14 | 一种生成树形结构的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111525857.1A CN114328450A (zh) | 2021-12-14 | 2021-12-14 | 一种生成树形结构的方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328450A true CN114328450A (zh) | 2022-04-12 |
Family
ID=81051567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111525857.1A Pending CN114328450A (zh) | 2021-12-14 | 2021-12-14 | 一种生成树形结构的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328450A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450655A (zh) * | 2023-06-14 | 2023-07-18 | 深圳须弥云图空间科技有限公司 | 树形结构数据处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-14 CN CN202111525857.1A patent/CN114328450A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450655A (zh) * | 2023-06-14 | 2023-07-18 | 深圳须弥云图空间科技有限公司 | 树形结构数据处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540350B2 (en) | Source code search engine | |
US10733055B1 (en) | Methods and apparatus related to graph transformation and synchronization | |
CN108390773B (zh) | 一种用于脚手架的动态路由的方法及设备 | |
JP6028567B2 (ja) | データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法 | |
CN109800225A (zh) | 业务指标的获取方法、装置、服务器及计算机可读存储介质 | |
US8954928B2 (en) | Version labeling in a version control system | |
CN114491172B (zh) | 树形结构节点的快速检索方法、装置、设备及存储介质 | |
US20170103099A1 (en) | Database table data fabrication | |
CN110941655A (zh) | 一种数据格式转换方法及装置 | |
CN109033365B (zh) | 一种数据处理方法及相关设备 | |
CN114328450A (zh) | 一种生成树形结构的方法及设备 | |
CN115599764A (zh) | 一种表格数据的迁移方法、设备及介质 | |
CN111475511A (zh) | 基于树状结构的数据存储方法、访问方法、装置及设备 | |
CN108304384B (zh) | 拆词方法及设备 | |
CN117234520A (zh) | 一种基于Unity的预制生成方法、设备及介质 | |
CN117454206A (zh) | 针对晶圆的缺陷的聚类方法、系统、设备及计算机可读介质 | |
CN112948389A (zh) | 基于md5的数据库表数据比对方法及设备 | |
CN109388716B (zh) | 关系图更新方法及设备 | |
CN111666278A (zh) | 数据存储、检索方法、电子设备及存储介质 | |
Schlitter et al. | DenGraph‐HO: a density‐based hierarchical graph clustering algorithm | |
CN115544011A (zh) | 一种数据查询的方法、电子设备及计算机可读存储介质 | |
CN111752912B (zh) | 数据处理方法及装置 | |
CN113312314A (zh) | 一种用于安卓平台重复文件检索的方法、装置及设备 | |
KR20220066730A (ko) | 맞춤형 지식 그래프 생성을 위한 시스템 및 방법 | |
CN102193942B (zh) | 数据块的查找方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |