处理具有树形结构的数据集合的方法和装置制造方法及图纸

技术编号:17467429 阅读:76 留言:0更新日期:2018-03-15 04:58
本申请提供了一种处理具有树形结构的数据集合的方法,包括:根据数据集合的树形结构确定至少两个堆栈,该数据集合中的数据存储于该至少两个堆栈,且该至少两个堆栈中任意两个堆栈的节点的交集为空集;扫描该至少两个堆栈,并处理该至少两个堆栈中的数据。根据本实施例提供的方法,处理器在遍历数据集合之前首先从数据集合中确定至少两个堆栈,从而使得处理器可以同时扫描多个堆栈,提高了遍历数据集合的效率。

Methods and devices for processing data sets with tree structure

The invention provides a processing method, a tree structure of the data set includes: according to the tree structure data set to determine at least two stack, the data set in the data stored in the stack of at least two, and at least two arbitrary stack two stack node intersection is empty; scanning the at least two stacks, and processing the data in the stack of at least two. According to the method provided by this embodiment, the processor first determines at least two stack from the data set before traversing the data set, so that the processor can scan multiple stacks at the same time, and improve the efficiency of traversing data sets.

【技术实现步骤摘要】
处理具有树形结构的数据集合的方法和装置
本申请涉及计算机领域,尤其涉及一种处理具有树形结构的数据集合的方法和装置。
技术介绍
树形结构是数据之间的一种关联关系,即,多个数据之间存在“一对一”或者“一对多”的对应关系。例如,文件系统目录标准(filesystemhierarchystandard,FHS)采用树形结构的文件组织形式,根目录是所有目录与文件的源头,根目录包括若干子目录和/或文件,子目录还可能包括下一级子目录和/或文件,这些根目录、子目录以及文件的全部或部分构成了具有树形结构的数据集合。数据集合中的数据具有层(layer)和栈(stack)的属性,其中,栈也可称为堆栈。例如,根目录的全部子目录(根目录的下一级目录)位于树形结构的同一层,根目录的全部孙目录(根目录的下下一级目录)位于树形结构的另一层;从根目录开始向下逐层进行线性扫描,一直扫描到不包含子目录的目录为止,得到一条目录链,该目录链称为栈,上述不包含子目录的目录称为栈顶。当从具有树形结构的数据集合中查找所需的数据(即,目标数据)时,需要从根目录开始对所有的目录和文件进行遍历扫描,现有技术的扫描方法包括深度优先遍历算法本文档来自技高网...
处理具有树形结构的数据集合的方法和装置

【技术保护点】
一种处理具有树形结构的数据集合的方法,其特征在于,所述方法包括:根据数据集合的树形结构生成至少两个堆栈,所述至少两个堆栈中任意两个堆栈的节点的交集为空集;扫描所述至少两个堆栈,并处理所述至少两个堆栈中的数据。

【技术特征摘要】
1.一种处理具有树形结构的数据集合的方法,其特征在于,所述方法包括:根据数据集合的树形结构生成至少两个堆栈,所述至少两个堆栈中任意两个堆栈的节点的交集为空集;扫描所述至少两个堆栈,并处理所述至少两个堆栈中的数据。2.根据权利要求1所述的方法,其特征在于,所述数据集合包括多个目录,所述根据数据集合的树形结构生成至少两个堆栈,包括:将所述多个目录中的至少两个目录作为至少两个栈底目录生成所述至少两个堆栈。3.根据权利要求2所述的方法,其特征在于,所述将所述多个目录中的至少两个目录作为至少两个栈底目录生成所述至少两个堆栈,包括:从所述多个目录中确定第一栈顶目录,所述第一栈顶目录为所述多个目录在被扫描的过程中第一个未扫描到子目录的目录;根据所述第一栈顶目录和所述多个目录的根目录生成第一堆栈,其中,所述根目录为所述第一堆栈的栈底目录,所述第一栈顶目录为所述第一堆栈的栈顶目录,所述第一堆栈属于所述至少两个堆栈;根据所述第一堆栈包括的目录之外的目录生成第二堆栈,所述第二堆栈属于所述至少两个堆栈,所述第二堆栈的栈底目录为所述第一堆栈包括的目录之外的目录。4.根据权利要求3所述的方法,其特征在于,所述根据所述第一堆栈包括的目录之外的目录生成第二堆栈,包括:根据所述第一栈顶目录确定所述第一堆栈的扫描层,所述扫描层为所述第一堆栈中需要优先被扫描的层,且所述扫描层为非栈底目录所在的层,所述扫描层与所述第一栈顶目录存在预设的对应关系;根据M、N以及所述扫描层中的目录所包括的目录生成所述第二堆栈,所述M为所述扫描层中能够同时被扫描的目录的数量,所述N为所述数据集合在被扫描过程中能够同时存在的堆栈的数量,所述第二堆栈属于所述至少两个堆栈,所述扫描层中的目录所包括的目录不属于所述第一堆栈,所述M和所述N为大于或等于2的正整数。5.根据权利要求4所述的方法,其特征在于,所述扫描层中的目录包括第一目录,所述根据M、N以及所述扫描层中的目录所包括的目录生成所述第二堆栈,包括:扫描所述第一目录;将所述第一目录的子目录作为栈底目录生成所述第二堆栈。6.根据权利要求4或5所述的方法,其特征在于,所述扫描层为所述第一栈顶目录的父目录所在的层。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述扫描所述至少两个堆栈,包括:通过至少两个扫描线程同时扫描所述至少两个堆栈。8.根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:当所...

【专利技术属性】
技术研发人员:马彦强
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1