CN113722016A - 应用程序配置方法、装置、设备、存储介质及程序产品 - Google Patents
应用程序配置方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN113722016A CN113722016A CN202111064284.7A CN202111064284A CN113722016A CN 113722016 A CN113722016 A CN 113722016A CN 202111064284 A CN202111064284 A CN 202111064284A CN 113722016 A CN113722016 A CN 113722016A
- Authority
- CN
- China
- Prior art keywords
- node
- application program
- application
- tree
- operator
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004590 computer program Methods 0.000 claims description 13
- 238000003780 insertion Methods 0.000 abstract description 6
- 230000037431 insertion Effects 0.000 abstract description 6
- 239000002699 waste material Substances 0.000 abstract description 5
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 22
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 22
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 13
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 101150053844 APP1 gene Proteins 0.000 description 9
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 9
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 235000013305 food Nutrition 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
本公开实施例公开了一种应用程序配置方法、装置、设备、存储介质及程序产品,所述方法包括:获取应用程序配置需求信息,并基于所述应用程序配置需求信息确定逻辑运算符和所述逻辑运算符对应的操作数对象;基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型,其中,所述应用程序配置模型为二叉树数据结构;对于所述应用程序配置模型进行后序遍历,得到满足所述应用程序配置需求信息的目标应用程序集合。该技术方案不仅可以大大减少二叉树的节点数量,避免节点数据的重复和内存空间的浪费,减小了二叉树遍历时的性能开销,而且大大提升了节点插入效率,降低了操作工作量和时间复杂度。
Description
技术领域
本公开实施例涉及数据配置技术领域,具体涉及一种应用程序配置方法、装置、设备、存储介质及程序产品。
背景技术
随着数据技术的发展,应用市场等产品经常需要对于应用程序进行配置,有的相关技术借助二叉树解决应用程序集合的构建与输出问题,但现有方案存在以下问题:将应用程序所属行业分类作为每棵二叉树的根节点,由于应用程序可能同时属于多个行业分类,在构建二叉树时,某个应用程序节点可能会同时插入到多个根节点下,从而导致节点数据大量重复,浪费内存空间,同时也增加了二叉树遍历时的性能开销;插入节点时需要遍历整个森林,这样就会导致插入节点效率低下;输出最终的应用程序配置结果集合时需要遍历整个森林的所有叶子节点,工作量巨大,时间复杂度较高。因此需要对于现有方案进行改进。
发明内容
本公开实施例提供一种应用程序配置方法、装置、设备、存储介质及程序产品。
第一方面,本公开实施例中提供了一种应用程序配置方法。
具体的,所述应用程序配置方法,包括:
获取应用程序配置需求信息,并基于所述应用程序配置需求信息确定逻辑运算符和所述逻辑运算符对应的操作数对象;
基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型,其中,所述应用程序配置模型为二叉树数据结构;
对于所述应用程序配置模型进行后序遍历,得到满足所述应用程序配置需求信息的目标应用程序集合。
结合第一方面,本公开实施例在第一方面的第一种实现方式中,所述应用程序配置需求信息包括:应用程序所属行业分类需求信息、应用程序版本需求信息。
结合第一方面和第一方面的第一种实现方式,本公开实施例在第一方面的第二种实现方式中,所述逻辑运算符包括合并运算符和去除运算符,所述逻辑运算符对应的操作数对象包括:应用程序所属行业分类信息、应用程序标识信息、应用程序版本信息。
结合第一方面、第一方面的第一种实现方式和第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型,包括:
基于所述初始应用程序集合生成初始应用程序配置模型;
根据所述逻辑运算符和所述逻辑运算符对应的操作数对象,基于预设规则为所述初始应用程序配置模型增加相应的节点,得到应用程序配置模型。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式和第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,所述基于所述初始应用程序集合生成初始应用程序配置模型,包括:
从所述初始应用程序集合中随机选择一个应用程序作为所述初始应用程序配置模型的根节点;
随机遍历所述初始应用程序集合,根据所述应用程序对应的操作数对象,基于所述预设规则将剩余应用程序作为节点插入至所述初始应用程序配置模型中。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式和第一方面的第四种实现方式,本公开在第一方面的第五种实现方式中,所述预设规则包括:
从所述初始应用程序配置模型的根节点开始按递归方式访问所述初始应用程序配置模型中的每个节点;
若待插入节点为合并运算符节点,比较待插入节点与当前访问节点是否存在行业分类交集;若不存在交集,则将所述待插入节点插入至当前访问节点的左子树中,若左子树中已存在节点则继续向左子树的下一级插入,直至待插入节点成为叶子节点;若存在交集,则确认当前访问节点是否存在右子树,若不存在则按照不存在交集的情况插入,否则将所述待插入节点插入至右子树节点的左子树中,直至待插入节点成为叶子节点;
若待插入节点为合并运算符节点且与当前访问节点的应用程序标识信息相同,比较两个节点的版本信息;若待插入节点的版本信息较当前访问节点的版本信息新,则先在当前访问节点的右子树中插入一个NULL标识节点,然后将待插入节点作为左子树插入至NULL标识节点下;否则继续访问下一节点,直到访问完所有节点;
若待插入节点为去除运算符节点,比较待插入节点与当前访问节点是否存在行业分类的交集;若存在交集,且当前访问节点为非NULL标识节点,在当前访问节点的右子树中插入NULL标识节点,若存在交集,且当前访问节点为NULL标识节点,继续访问当前访问节点的左子树;若不存在交集,继续访问下一节点,直至访问完所有节点。
第二方面,本公开实施例中提供了一种应用程序配置装置。
具体的,所述应用程序配置装置,包括:
获取模块,被配置为获取应用程序配置需求信息,并基于所述应用程序配置需求信息确定逻辑运算符和所述逻辑运算符对应的操作数对象;
生成模块,被配置为基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型,其中,所述应用程序配置模型为二叉树数据结构;
遍历模块,被配置为对于所述应用程序配置模型进行后序遍历,得到满足所述应用程序配置需求信息的目标应用程序集合。
结合第二方面,本公开实施例在第二方面的第一种实现方式中,所述应用程序配置需求信息包括:应用程序所属行业分类需求信息、应用程序版本需求信息。
结合第二方面和第二方面的第一种实现方式,本公开实施例在第二方面的第二种实现方式中,所述逻辑运算符包括合并运算符和去除运算符,所述逻辑运算符对应的操作数对象包括:应用程序所属行业分类信息、应用程序标识信息、应用程序版本信息。
结合第二方面、第二方面的第一种实现方式和第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述生成模块被配置为:
基于所述初始应用程序集合生成初始应用程序配置模型;
根据所述逻辑运算符和所述逻辑运算符对应的操作数对象,基于预设规则为所述初始应用程序配置模型增加相应的节点,得到应用程序配置模型。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式和第二方面的第三种实现方式,本公开在第二方面的第四种实现方式中,所述基于所述初始应用程序集合生成初始应用程序配置模型的部分,被配置为:
从所述初始应用程序集合中随机选择一个应用程序作为所述初始应用程序配置模型的根节点;
随机遍历所述初始应用程序集合,根据所述应用程序对应的操作数对象,基于所述预设规则将剩余应用程序作为节点插入至所述初始应用程序配置模型中。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式和第二方面的第四种实现方式,本公开在第二方面的第五种实现方式中,所述预设规则包括:
从所述初始应用程序配置模型的根节点开始按递归方式访问所述初始应用程序配置模型中的每个节点;
若待插入节点为合并运算符节点,比较待插入节点与当前访问节点是否存在行业分类交集;若不存在交集,则将所述待插入节点插入至当前访问节点的左子树中,若左子树中已存在节点则继续向左子树的下一级插入,直至待插入节点成为叶子节点;若存在交集,则确认当前访问节点是否存在右子树,若不存在则按照不存在交集的情况插入,否则将所述待插入节点插入至右子树节点的左子树中,直至待插入节点成为叶子节点;
若待插入节点为合并运算符节点且与当前访问节点的应用程序标识信息相同,比较两个节点的版本信息;若待插入节点的版本信息较当前访问节点的版本信息新,则先在当前访问节点的右子树中插入一个NULL标识节点,然后将待插入节点作为左子树插入至NULL标识节点下;否则继续访问下一节点,直到访问完所有节点;
若待插入节点为去除运算符节点,比较待插入节点与当前访问节点是否存在行业分类的交集;若存在交集,且当前访问节点为非NULL标识节点,在当前访问节点的右子树中插入NULL标识节点,若存在交集,且当前访问节点为NULL标识节点,继续访问当前访问节点的左子树;若不存在交集,继续访问下一节点,直至访问完所有节点。
第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持应用程序配置装置执行上述应用程序配置方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述应用程序配置装置还可以包括通信接口,用于应用程序配置装置与其他设备或通信网络通信。
第四方面,本公开实施例提供了一种计算机可读存储介质,用于存储应用程序配置装置所用的计算机指令,其包含用于执行上述应用程序配置方法为应用程序配置装置所涉及的计算机指令。
第五方面,本公开实施例提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述应用程序配置方法的步骤。
本公开实施例提供的技术方案可包括以下有益效果:
上述技术方案将应用程序作为节点,将所属行业分类作为节点的数据项进行二叉树的建立。该技术方案不仅可以大大减少二叉树的节点数量,避免节点数据的重复和内存空间的浪费,减小了二叉树遍历时的性能开销,而且插入某个节点时只需要遍历一棵二叉树,从而大大提升了节点插入效率,同时在输出最终应用程序配置结果集合时,也只需要做一次二叉树的后序遍历即可,进而大大降低了操作工作量和时间复杂度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的应用程序配置方法的流程图;
图2A-图2F示出根据本公开一实施方式的应用程序配置方法的应用场景图;
图3示出根据本公开一实施方式的应用程序配置装置的结构框图;
图4示出根据本公开一实施方式的电子设备的结构框图;
图5是适于用来实现根据本公开一实施方式的应用程序配置方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。
本公开实施例提供的技术方案将应用程序作为节点,将所属行业分类作为节点的数据项进行二叉树的建立。该技术方案不仅可以大大减少二叉树的节点数量,避免节点数据的重复和内存空间的浪费,减小了二叉树遍历时的性能开销,而且插入某个节点时只需要遍历一棵二叉树,从而大大提升了节点插入效率,同时在输出最终应用程序配置结果集合时,也只需要做一次二叉树的后序遍历即可,进而大大降低了操作工作量和时间复杂度。
图1示出根据本公开一实施方式的应用程序配置方法的流程图,如图1所示,所述应用程序配置方法包括以下步骤S101-S103:
在步骤S101中,获取应用程序配置需求信息,并基于所述应用程序配置需求信息确定逻辑运算符和所述逻辑运算符对应的操作数对象;
在步骤S102中,基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型,其中,所述应用程序配置模型为二叉树数据结构;
在步骤S103中,对于所述应用程序配置模型进行后序遍历,得到满足所述应用程序配置需求信息的目标应用程序集合。
上文提及,随着数据技术的发展,应用市场等产品经常需要对于应用程序进行配置,有的相关技术借助二叉树解决应用程序集合的构建与输出问题,但现有方案存在以下问题:将应用程序所属行业分类作为每棵二叉树的根节点,由于应用程序可能同时属于多个行业分类,在构建二叉树时,某个应用程序节点可能会同时插入到多个根节点下,从而导致节点数据大量重复,浪费内存空间,同时也增加了二叉树遍历时的性能开销;插入节点时需要遍历整个森林,这样就会导致插入节点效率低下;输出最终的应用程序配置结果集合时需要遍历整个森林的所有叶子节点,工作量巨大,时间复杂度较高。因此需要对于现有方案进行改进。
考虑到上述问题,在该实施方式中,提出一种应用程序配置方法,该方法将应用程序作为节点,将所属行业分类作为节点的数据项进行二叉树的建立。该技术方案不仅可以大大减少二叉树的节点数量,避免节点数据的重复和内存空间的浪费,减小了二叉树遍历时的性能开销,而且插入某个节点时只需要遍历一棵二叉树,从而大大提升了节点插入效率,同时在输出最终应用程序配置结果集合时,也只需要做一次二叉树的后序遍历即可,进而大大降低了操作工作量和时间复杂度。
在本公开一实施方式中,所述应用程序配置方法可适用于进行应用程序配置的计算机、电子设备、服务器、服务器集群等等。
在本公开一实施方式中,所述应用程序配置需求信息指的是对于应用程序的配置进行要求或限制的信息,也就是说,最终得到的应用程序需满足所述应用程序配置需求信息的要求。
在本公开一实施方式中,所述应用程序配置需求信息可包括以下信息中的一种或多种:应用程序所属行业分类需求信息、应用程序版本需求信息。其中,所述应用程序所属行业分类需求信息指的是对于应用程序所属行业分类进行限制的信息,所述行业分类比如可以为O2O(Online To Offline)、收银/酒店/餐饮、支付、收银/餐饮等等,所述应用程序所属行业分类需求信息比如可以表述为“应用程序所属行业分类为收银/餐饮”等等;所述应用程序版本需求信息指的是对于应用程序的版本信息进行限制的信息,所述应用程序版本需求信息比如可以表述为“应用程序的版本需为1.0.1”等等。
在本公开一实施方式中,所述逻辑运算符用于表示操作数对象之间的逻辑运算关系。在该实施方式中,所述逻辑运算符可包括合并运算符and和去除运算符negate。其中,所述合并运算符and表征为加法操作,即将与该运算符相应的操作数对象添加到当前二叉树中,所述去除运算符negate表征为减法操作,即将二叉树中与该运算符相应的操作数对象相同的节点进行逻辑去除。
在本公开一实施方式中,所述操作数对象指的是与所述逻辑运算符对应的、作为所述逻辑运算符的运算对象的对象。其中,所述操作数对象可包括以下对象中的一种或多种:应用程序所属行业分类、应用程序标识、应用程序版本。其中,所述应用程序所属行业分类用于描述应用程序所属的行业分类,比如“应用程序1所属行业分类为收银/餐饮”等等;所述应用程序标识指的是对于所述应用程序进行区别性标识的信息,比如应用程序ID等等;所述应用程序版本用于描述应用程序的版本,比如“应用程序1的版本号为1.0.1”等等。
在本公开一实施方式中,所述初始应用程序集合指的是预先设置的、由现有技术使用的配置模版所共有的应用程序组成的、可作为生成最终符合应用程序配置需求信息要求的目标应用程序的数据基础的集合,即后续可以以所述初始应用程序集合中的应用程序为基础,选择符合应用程序配置需求信息要求的应用程序。
在本公开一实施方式中,所述应用程序配置模型指的是基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成的、与所述应用程序配置需求信息相关的、能够体现所述应用程序配置需求信息的、且能够完成满足所述应用程序配置需求信息要求的应用程序的配置的,即得到符合所述应用程序配置需求信息要求的应用程序的模型。其中,所述应用程序配置模型是一种二叉树数据结构。
其中,二叉树的后序遍历属于本领域技术人员应当掌握的知识,比如,所述后序遍历的规则可以为遵循左-右-根的遍历顺序,即从二叉树的根节点开始,先访问左子树,然后访问右子树,最后访问当前子树的根节点。对于二叉树后序遍历的具体过程,此处不再进行赘述。
在上述实施方式中,首先获取作为配置目标应用程序的条件的应用程序配置需求信息,然后基于所述应用程序配置需求信息确定所需的逻辑运算符和所述逻辑运算符对应的操作数对象;然后基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和预先设置的初始应用程序集合生成具有二叉树数据结构的应用程序配置模型,即借助二叉树的建立得到所述应用程序配置模型;最后借助所述二叉树的后序遍历,得到满足所述应用程序配置需求信息的目标应用程序,组成目标应用程序集合。
在本公开一实施方式中,所述步骤S102,即基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型的步骤,可包括以下步骤:
基于所述初始应用程序集合生成初始应用程序配置模型;
根据所述逻辑运算符、所述逻辑运算符对应的操作数对象,基于预设规则为所述初始应用程序配置模型增加相应的节点,得到应用程序配置模型。
在该实施方式中,在基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型时,首先基于所述初始应用程序集合生成一个初始应用程序配置模型;然后根据所述逻辑运算符和所述逻辑运算符对应的操作数对象,基于预设规则为所述初始应用程序配置模型增加相应的节点,从而得到应用程序配置模型。
上述逻辑运算符和所述逻辑运算符对应的操作数对象可统称为二叉树节点的数据项,后续可根据二叉树节点的数据项为所述初始应用程序配置模型或者当前应用程序配置模型增加相应的节点,以得到应用程序配置模型。其中,所述预设规则指的是预先设置的、符合二叉树数据结构要求的、用于在当前二叉树中插入新的二叉树节点的规则。
在本公开一实施方式中,所述基于所述初始应用程序集合生成初始应用程序配置模型的步骤,可包括以下步骤:
从所述初始应用程序集合中随机选择一个应用程序作为所述初始应用程序配置模型的根节点;
随机遍历所述初始应用程序集合,根据所述应用程序对应的操作数对象,基于所述预设规则将剩余应用程序作为节点插入至所述初始应用程序配置模型中。
在该实施方式中,在基于所述初始应用程序集合生成初始应用程序配置模型时,可从所述初始应用程序集合中随机选择一个应用程序作为所述初始应用程序配置模型的根节点;然后以随机的方式遍历所述初始应用程序集合,根据所述应用程序对应的操作数对象,并且基于所述预设规则将剩余应用程序作为节点插入至所述初始应用程序配置模型中,其中,所述应用程序对应的操作数对象可包括以下对象中的一种或多种:应用程序所属行业分类、应用程序标识、应用程序版本。
上文提及,所述预设规则指的是预先设置的、符合二叉树数据结构要求的、用于在当前二叉树中插入新的二叉树节点的规则。在本公开一实施方式中,所述预设规则可表述为:
从所述初始应用程序配置模型的根节点开始按递归方式访问所述初始应用程序配置模型中的每个节点;
若待插入节点为合并运算符节点,比较待插入节点与当前访问节点是否存在行业分类交集;若不存在交集,则将所述待插入节点插入至当前访问节点的左子树中,若左子树中已存在节点则继续向左子树的下一级插入,直至待插入节点成为叶子节点;若存在交集,则确认当前访问节点是否存在右子树,若不存在则按照上述不存在交集的情况插入,否则将所述待插入节点插入至右子树节点的左子树中,直至待插入节点成为叶子节点;
若待插入节点为合并运算符节点且与当前访问节点的应用程序标识信息相同,比较两个节点的版本信息;若待插入节点的版本信息较当前访问节点的版本信息新,则先在当前访问节点的右子树中插入一个NULL标识节点,然后将待插入节点作为左子树插入至NULL标识节点下;否则继续访问下一节点,直到访问完所有节点;
若待插入节点为去除运算符节点,比较待插入节点与当前访问节点是否存在行业分类的交集;若存在交集,且当前访问节点为非NULL标识节点,则在当前访问节点的右子树中插入NULL标识节点,若存在交集,且当前访问节点为NULL标识节点,则继续访问当前访问节点的左子树;若不存在交集,则继续访问下一节点,直至访问完所有节点。
图2A-图2F示出根据本公开一实施方式的应用程序配置方法的应用场景图,在该应用场景中,假设初始应用程序集合包括三个应用程序:应用程序1,相应操作数对象为:应用程序标识信息为1,所属行业分类为O2O,版本号为1.0.0;应用程序2,相应操作数对象为:应用程序标识信息为2,所属行业分类为收银/酒店/餐饮,版本号为1.0.0;应用程序3,相应操作数对象为:应用程序标识信息为3,所属行业分类为支付,版本号为1.0.0。从所述初始应用程序集合中随机选择一个应用程序:应用程序1作为初始应用程序配置模型,即初始二叉树的根节点,然后随机遍历所述初始应用程序集合,根据所述应用程序的操作数对象以及预设规则将剩余应用程序作为节点插入至初始二叉树中,如图2A所示。
假设收到的应用程序配置需求信息为“屏蔽行业分类为O2O的应用程序,增加APP4、APP5和APP8”,基于上述应用程序配置需求信息可确定逻辑运算符及其对应的操作数对象包括:Negate运算符,其操作数对象为:行业分类(O2O);和And运算符,其操作数对象为:APP8(行业分类:收银/餐饮),APP4(行业分类:O2O),APP5(行业分类:O2O)。对于Negate运算符,根据上述预设规则,需要先比较待插入节点与当前访问节点是否存在行业分类的交集,由于图2A所示二叉树的根节点的行业分类为O2O,Negate运算符的行业分类亦为O2O,即与根节点存在交集,且根节点为非NULL标识节点,因此,需要在根节点的右子树中插入NULL标识节点,如图2B所示。对于And运算符,根据上述预设规则,也需要先比较待插入节点与当前访问节点是否存在行业分类交集,由于图2B所示二叉树的根节点的行业分类为O2O,And运算符其中一个操作数对象APP8的行业分类为收银/餐饮,与根节点不存在行业分类交集,应该将APP8节点插入至根节点的左子树中,但由于根节点的左子树已存在节点APP2,节点APP2的行业分类为收银/酒店/餐饮,与APP8节点存在行业分类交集,但节点APP2不存在右子树,则按照不存在交集的情况继续向下走至节点APP2的左子树节点APP3,节点APP3的行业分类为支付,与APP8节点不存在行业分类交集,且节点APP3不存在左子树节点,则可将APP8节点插入至节点APP3的左子树;And运算符另一个操作数对象APP4的行业分类为O2O,与根节点存在行业分类交集,且根节点存在右子树NULL标识节点,则需将APP4节点插入至NULL标识节点的左子树中;And运算符最后一个操作数对象APP5的行业分类亦为O2O,与APP4节点的插入类似,由于APP5节点与根节点存在行业分类交集,且根节点存在右子树NULL标识节点,则需将APP5节点插入至NULL标识节点的左子树中,但由于NULL标识节点的左子树已存在节点APP4,由于APP4节点与APP5节点存在行业分类交集,且APP4节点不存在右子树,则按照不存在交集的情况,将APP5节点插入至节点APP4的左子树中,如图2C所示。
假设又收到应用程序配置需求信息“屏蔽行业分类为收银的应用程序,增加APP6”,基于上述应用程序配置需求信息可确定逻辑运算符及其对应的操作数对象包括:Negate运算符,其操作数对象为:行业分类(收银);和And运算符,其操作数对象为:APP6(行业分类:收银)。对于Negate运算符,根据上述预设规则,需要先比较待插入节点与当前访问节点是否存在行业分类的交集,由于图2C所示二叉树的根节点的行业分类为O2O,Negate运算符的行业分类为收银,即与根节点不存在交集,继续访问下一节点,根节点的左子树节点为APP2,APP2的行业分类为收银/酒店/餐饮,与Negate运算符存在交集,且APP2为非NULL标识节点,在APP2节点的右子树中插入NULL标识节点,以此类推,还需要在行业分类为收银/餐饮的APP8节点的右子树中也插入NULL标识节点,如图2D所示。对于And运算符,根据上述预设规则,也需要先比较待插入节点与当前访问节点是否存在行业分类交集,由于图2D所示二叉树的根节点的行业分类为O2O,And运算符的行业分类为收银,与根节点不存在行业分类交集,应该将APP6节点插入至根节点的左子树中,但由于根节点的左子树已存在节点APP2,节点APP2的行业分类为收银/酒店/餐饮,与节点APP6存在行业分类交集,且节点APP2存在右子树NULL标识节点,则可将APP6节点插入至NULL标识节点的左子树,如图2E所示。
假设又收到应用程序配置需求信息“增加版本号为1.0.1的APP6”,基于上述应用程序配置需求信息可确定逻辑运算符及其对应的操作数对象包括:And运算符,其操作数对象为:APP6(行业分类:收银,版本号:1.0.1)。对于该And运算符,根据上述预设规则,需要先比较待插入节点与当前访问节点是否存在行业分类交集,由于图2E所示二叉树的根节点的行业分类为O2O,And运算符的行业分类为收银,与根节点不存在行业分类交集,应该将新版本APP6节点插入至根节点的左子树中,但由于根节点的左子树已存在节点APP2,节点APP2的行业分类为收银/酒店/餐饮,与节点新版本APP6存在行业分类交集,且节点APP2存在右子树NULL标识节点,则可将新版本APP6节点插入至NULL标识节点的左子树,但NULL标识节点的左子树已存在一个仅版本不同的APP6节点,且APP6节点的版本信息低于新版本APP6节点,则先在APP6节点的右子树中插入一个NULL标识节点,再将新版本APP6节点作为左子树插入至NULL标识节点下,如图2F所示,这样就生成了应用程序配置模型。
然后对于所述应用程序配置模型进行后序遍历,即可得到满足所述应用程序配置需求信息的目标应用程序集合。其中,所述后序遍历的规则可以为遵循左-右-根的遍历顺序,即从二叉树的根节点开始,先访问左子树,然后访问右子树,最后访问当前子树的根节点。
具体地:
首先,对于图2F所示的二叉树,从根节点开始,即图2F中的APP1节点,先访问APP1节点的左子树,到了APP2节点;由于APP2节点还有左子树,则继续访问APP2节点的左子树,到了APP3节点;由于APP3节点还有左子树,则继续访问APP3节点的左子树,到了APP8节点;由于APP8节点没有左子树,则访问APP8节点的右子树,到了NULL标识节点,NULL标识节点没有左右子树,且按照规则,NULL标识节点无需输出到最后结果中;
按照左-右-根的遍历顺序原则,现在应该访问当前子树的根节点了,即APP8节点;由于APP8节点的右孩子是NULL标志节点,因此按照规则,APP8节点也无需输出到最终结果中;
现在回到了APP3节点,需要访问APP3节点的右子树了,由于APP3节点没有右子树,所以直接访问该子树的根节点APP3,由于APP3节点的右孩子不是NULL标志节点,因此APP3节点是需要输出到最终结果中的,即得到第一个输出项APP3;
接下去回到了APP2节点,需要访问其右子树,其右子树是一个NULL标志节点,由于其存在左子树,所以继续访问左子树,到了APP6节点;由于APP6节点没有左子树,则访问APP6节点的右子树,又到了一个NULL标志节点,该节点存在左子树,则继续访问左子树,即新版本APP6节点,新版本APP6节点没有左右子树,则直接访问该节点,且也没有右孩子为NULL标志节点,新版本APP6节点作为输出项输出,即得到第二个输出项APP6(1.0.1);
此时回到了APP6(1.0.1)的父节点NULL标志节点,该节点没有右子树,且当前子树根节点为NULL标志节点,因此无需输出;
此时回到了APP6节点,因为APP6节点的右孩子是NULL标志节点,因此也无需输出;
此时回到了APP6节点的父节点NULL标志节点,该节点也没有右子树,且当前子树根节点为NULL标志节点,因此也无需输出;
此时回到了APP2节点,根据后序遍历规则,左右子树都访问过了,就需要访问当前子树的根节点了,即APP2节点,由于其右孩子是NULL标志节点,因此也不能作为输出项输出;
此时回到了APP1节点,此时APP1节点的左子树已经全部遍历完成,接下去开始遍历APP1节点的右子树,即NULL标志节点;NULL标志节点存在左子树,所以继续访问左子树APP4节点,APP4节点也存在左子树,所以继续访问APP5节点;APP5节点没有左右子树,且该节点的右孩子也不是NULL标志节点,故需要输出该节点,即得到第三个输出项APP5;
此时回到了APP4节点,由于APP4节点不存在右子树,且该节点的右孩子也不是NULL标志节点,故需要输出该节点,即得到第四个输出项APP4;
此时回到了APP1节点,由于APP1节点的右孩子是NULL标志节点,因此APP1也不需要作为输出项输出;
由于APP1节点是整个二叉树的根节点,因此二叉树的后序遍历到此终止。通过上述后序遍历得到了输出序列:APP3,APP6(1.0.1),APP5,APP4,即为满足所述应用程序配置需求信息的目标应用程序集合。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图3示出根据本公开一实施方式的应用程序配置装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图3所示,所述应用程序配置装置包括:
获取模块301,被配置为获取应用程序配置需求信息,并基于所述应用程序配置需求信息确定逻辑运算符和所述逻辑运算符对应的操作数对象;
生成模块302,被配置为基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型,其中,所述应用程序配置模型为二叉树数据结构;
遍历模块303,被配置为对于所述应用程序配置模型进行后序遍历,得到满足所述应用程序配置需求信息的目标应用程序集合。
上文提及,随着数据技术的发展,应用市场等产品经常需要对于应用程序进行配置,有的相关技术借助二叉树解决应用程序集合的构建与输出问题,但现有方案存在以下问题:将应用程序所属行业分类作为每棵二叉树的根节点,由于应用程序可能同时属于多个行业分类,在构建二叉树时,某个应用程序节点可能会同时插入到多个根节点下,从而导致节点数据大量重复,浪费内存空间,同时也增加了二叉树遍历时的性能开销;插入节点时需要遍历整个森林,这样就会导致插入节点效率低下;输出最终的应用程序配置结果集合时需要遍历整个森林的所有叶子节点,工作量巨大,时间复杂度较高。因此需要对于现有方案进行改进。
考虑到上述问题,在该实施方式中,提出一种应用程序配置装置,该装置将应用程序作为节点,将所属行业分类作为节点的数据项进行二叉树的建立。该技术方案不仅可以大大减少二叉树的节点数量,避免节点数据的重复和内存空间的浪费,减小了二叉树遍历时的性能开销,而且插入某个节点时只需要遍历一棵二叉树,从而大大提升了节点插入效率,同时在输出最终应用程序配置结果集合时,也只需要做一次二叉树的后序遍历即可,进而大大降低了操作工作量和时间复杂度。
在本公开一实施方式中,所述应用程序配置装置可实现为进行应用程序配置的计算机、电子设备、服务器、服务器集群等等。
在本公开一实施方式中,所述应用程序配置需求信息指的是对于应用程序的配置进行要求或限制的信息,也就是说,最终得到的应用程序需满足所述应用程序配置需求信息的要求。
在本公开一实施方式中,所述应用程序配置需求信息可包括以下信息中的一种或多种:应用程序所属行业分类需求信息、应用程序版本需求信息。其中,所述应用程序所属行业分类需求信息指的是对于应用程序所属行业分类进行限制的信息,所述行业分类比如可以为O2O(Online To Offline)、收银/酒店/餐饮、支付、收银/餐饮等等,所述应用程序所属行业分类需求信息比如可以表述为“应用程序所属行业分类为收银/餐饮”等等;所述应用程序版本需求信息指的是对于应用程序的版本信息进行限制的信息,所述应用程序版本需求信息比如可以表述为“应用程序的版本需为1.0.1”等等。
在本公开一实施方式中,所述逻辑运算符用于表示操作数对象之间的逻辑运算关系。在该实施方式中,所述逻辑运算符可包括合并运算符and和去除运算符negate。其中,所述合并运算符and表征为加法操作,即将与该运算符相应的操作数对象添加到当前二叉树中,所述去除运算符negate表征为减法操作,即将二叉树中与该运算符相应的操作数对象相同的节点进行逻辑去除。
在本公开一实施方式中,所述操作数对象指的是与所述逻辑运算符对应的、作为所述逻辑运算符的运算对象的对象。其中,所述操作数对象可包括以下对象中的一种或多种:应用程序所属行业分类、应用程序标识、应用程序版本。其中,所述应用程序所属行业分类用于描述应用程序所属的行业分类,比如“应用程序1所属行业分类为收银/餐饮”等等;所述应用程序标识指的是对于所述应用程序进行区别性标识的信息,比如应用程序ID等等;所述应用程序版本用于描述应用程序的版本,比如“应用程序1的版本号为1.0.1”等等。
在本公开一实施方式中,所述初始应用程序集合指的是预先设置的、由现有技术使用的配置模版所共有的应用程序组成的、可作为生成最终符合应用程序配置需求信息要求的目标应用程序的数据基础的集合,即后续可以以所述初始应用程序集合中的应用程序为基础,选择符合应用程序配置需求信息要求的应用程序。
在本公开一实施方式中,所述应用程序配置模型指的是基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成的、与所述应用程序配置需求信息相关的、能够体现所述应用程序配置需求信息的、且能够完成满足所述应用程序配置需求信息要求的应用程序的配置的,即得到符合所述应用程序配置需求信息要求的应用程序的模型。其中,所述应用程序配置模型是一种二叉树数据结构。
其中,二叉树的后序遍历属于本领域技术人员应当掌握的知识,比如,所述后序遍历的规则可以为遵循左-右-根的遍历顺序,即从二叉树的根节点开始,先访问左子树,然后访问右子树,最后访问当前子树的根节点。对于二叉树后序遍历的具体过程,此处不再进行赘述。
在上述实施方式中,首先获取作为配置目标应用程序的条件的应用程序配置需求信息,然后基于所述应用程序配置需求信息确定所需的逻辑运算符和所述逻辑运算符对应的操作数对象;然后基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和预先设置的初始应用程序集合生成具有二叉树数据结构的应用程序配置模型,即借助二叉树的建立得到所述应用程序配置模型;最后借助所述二叉树的后序遍历,得到满足所述应用程序配置需求信息的目标应用程序,组成目标应用程序集合。
在本公开一实施方式中,所述生成模块302可被配置为:
基于所述初始应用程序集合生成初始应用程序配置模型;
根据所述逻辑运算符、所述逻辑运算符对应的操作数对象,基于预设规则为所述初始应用程序配置模型增加相应的节点,得到应用程序配置模型。
在该实施方式中,在基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型时,首先基于所述初始应用程序集合生成一个初始应用程序配置模型;然后根据所述逻辑运算符和所述逻辑运算符对应的操作数对象,基于预设规则为所述初始应用程序配置模型增加相应的节点,从而得到应用程序配置模型。
上述逻辑运算符和所述逻辑运算符对应的操作数对象可统称为二叉树节点的数据项,后续可根据二叉树节点的数据项为所述初始应用程序配置模型或者当前应用程序配置模型增加相应的节点,以得到应用程序配置模型。其中,所述预设规则指的是预先设置的、符合二叉树数据结构要求的、用于在当前二叉树中插入新的二叉树节点的规则。
在本公开一实施方式中,所述基于所述初始应用程序集合生成初始应用程序配置模型的部分,可被配置为:
从所述初始应用程序集合中随机选择一个应用程序作为所述初始应用程序配置模型的根节点;
随机遍历所述初始应用程序集合,根据所述应用程序对应的操作数对象,基于所述预设规则将剩余应用程序作为节点插入至所述初始应用程序配置模型中。
在该实施方式中,在基于所述初始应用程序集合生成初始应用程序配置模型时,可从所述初始应用程序集合中随机选择一个应用程序作为所述初始应用程序配置模型的根节点;然后以随机的方式遍历所述初始应用程序集合,根据所述应用程序对应的操作数对象,并且基于所述预设规则将剩余应用程序作为节点插入至所述初始应用程序配置模型中,其中,所述应用程序对应的操作数对象可包括以下对象中的一种或多种:应用程序所属行业分类、应用程序标识、应用程序版本。
上文提及,所述预设规则指的是预先设置的、符合二叉树数据结构要求的、用于在当前二叉树中插入新的二叉树节点的规则。在本公开一实施方式中,所述预设规则可表述为:
从所述初始应用程序配置模型的根节点开始按递归方式访问所述初始应用程序配置模型中的每个节点;
若待插入节点为合并运算符节点,比较待插入节点与当前访问节点是否存在行业分类交集;若不存在交集,则将所述待插入节点插入至当前访问节点的左子树中,若左子树中已存在节点则继续向左子树的下一级插入,直至待插入节点成为叶子节点;若存在交集,则确认当前访问节点是否存在右子树,若不存在则按照上述不存在交集的情况插入,否则将所述待插入节点插入至右子树节点的左子树中,直至待插入节点成为叶子节点;
若待插入节点为合并运算符节点且与当前访问节点的应用程序标识信息相同,比较两个节点的版本信息;若待插入节点的版本信息较当前访问节点的版本信息新,则先在当前访问节点的右子树中插入一个NULL标识节点,然后将待插入节点作为左子树插入至NULL标识节点下;否则继续访问下一节点,直到访问完所有节点;
若待插入节点为去除运算符节点,比较待插入节点与当前访问节点是否存在行业分类的交集;若存在交集,且当前访问节点为非NULL标识节点,则在当前访问节点的右子树中插入NULL标识节点,若存在交集,且当前访问节点为NULL标识节点,则继续访问当前访问节点的左子树;若不存在交集,则继续访问下一节点,直至访问完所有节点。
本公开还公开了一种电子设备,图4示出根据本公开一实施方式的电子设备的结构框图,如图4所示,所述电子设备400包括存储器401和处理器402;其中,
所述存储器401用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器402执行以实现上述方法步骤。
图5是适于用来实现根据本公开一实施方式的应用程序配置方法的计算机系统的结构示意图。
如图5所示,计算机系统500包括处理单元501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行上述实施方式中的各种处理。在RAM503中,还存储有系统500操作所需的各种程序和数据。处理单元501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。其中,所述处理单元501可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述畅通信息确定方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
本公开实施例还公开了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述任一方法步骤。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种应用程序配置方法,包括:
获取应用程序配置需求信息,并基于所述应用程序配置需求信息确定逻辑运算符和所述逻辑运算符对应的操作数对象;
基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型,其中,所述应用程序配置模型为二叉树数据结构;
对于所述应用程序配置模型进行后序遍历,得到满足所述应用程序配置需求信息的目标应用程序集合。
2.根据权利要求1所述的方法,其中,所述应用程序配置需求信息包括:应用程序所属行业分类需求信息、应用程序版本需求信息。
3.根据权利要求2所述的方法,其中,所述逻辑运算符包括合并运算符和去除运算符,所述逻辑运算符对应的操作数对象包括:应用程序所属行业分类信息、应用程序标识信息、应用程序版本信息。
4.根据权利要求1-3任一所述的方法,所述基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型,包括:
基于所述初始应用程序集合生成初始应用程序配置模型;
根据所述逻辑运算符和所述逻辑运算符对应的操作数对象,基于预设规则为所述初始应用程序配置模型增加相应的节点,得到应用程序配置模型。
5.根据权利要求4所述的方法,所述基于所述初始应用程序集合生成初始应用程序配置模型,包括:
从所述初始应用程序集合中随机选择一个应用程序作为所述初始应用程序配置模型的根节点;
随机遍历所述初始应用程序集合,根据所述应用程序对应的操作数对象,基于所述预设规则将剩余应用程序作为节点插入至所述初始应用程序配置模型中。
6.根据权利要求4或5所述的方法,所述预设规则包括:
从所述初始应用程序配置模型的根节点开始按递归方式访问所述初始应用程序配置模型中的每个节点;
若待插入节点为合并运算符节点,比较待插入节点与当前访问节点是否存在行业分类交集;若不存在交集,则将所述待插入节点插入至当前访问节点的左子树中,若左子树中已存在节点则继续向左子树的下一级插入,直至待插入节点成为叶子节点;若存在交集,则确认当前访问节点是否存在右子树,若不存在则按照不存在交集的情况插入,否则将所述待插入节点插入至右子树节点的左子树中,直至待插入节点成为叶子节点;
若待插入节点为合并运算符节点且与当前访问节点的应用程序标识信息相同,比较两个节点的版本信息;若待插入节点的版本信息较当前访问节点的版本信息新,则先在当前访问节点的右子树中插入一个NULL标识节点,然后将待插入节点作为左子树插入至NULL标识节点下;否则继续访问下一节点,直到访问完所有节点;
若待插入节点为去除运算符节点,比较待插入节点与当前访问节点是否存在行业分类的交集;若存在交集,且当前访问节点为非NULL标识节点,在当前访问节点的右子树中插入NULL标识节点,若存在交集,且当前访问节点为NULL标识节点,继续访问当前访问节点的左子树;若不存在交集,继续访问下一节点,直至访问完所有节点。
7.一种应用程序配置装置,包括:
获取模块,被配置为获取应用程序配置需求信息,并基于所述应用程序配置需求信息确定逻辑运算符和所述逻辑运算符对应的操作数对象;
生成模块,被配置为基于所述逻辑运算符、所述逻辑运算符对应的操作数对象和初始应用程序集合生成应用程序配置模型,其中,所述应用程序配置模型为二叉树数据结构;
遍历模块,被配置为对于所述应用程序配置模型进行后序遍历,得到满足所述应用程序配置需求信息的目标应用程序集合。
8.一种电子设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-6任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1-6任一项所述方法的步骤。
10.一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现权利要求1-6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064284.7A CN113722016B (zh) | 2021-09-10 | 2021-09-10 | 应用程序配置方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064284.7A CN113722016B (zh) | 2021-09-10 | 2021-09-10 | 应用程序配置方法、装置、设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113722016A true CN113722016A (zh) | 2021-11-30 |
CN113722016B CN113722016B (zh) | 2024-08-20 |
Family
ID=78683301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111064284.7A Active CN113722016B (zh) | 2021-09-10 | 2021-09-10 | 应用程序配置方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113722016B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1077845A (en) * | 1963-11-07 | 1967-08-02 | Ibm | Improvements in data processing systems |
US20050187912A1 (en) * | 2004-02-24 | 2005-08-25 | International Business Machines Corporation | Management of configuration data using extensible markup language |
US20090106738A1 (en) * | 2007-10-18 | 2009-04-23 | Trendium, Inc. | Methods, systems, and computer program products for real time configuration and analysis of network based algorithmic service objectives |
US8095677B1 (en) * | 2009-05-21 | 2012-01-10 | Sendmail, Inc. | Configuration rule generation with compressed address sets |
CN102646111A (zh) * | 2012-02-16 | 2012-08-22 | 中国测绘科学研究院 | 一种基于知识库的通用关联信息查询树的快速构建方法 |
CN103218209A (zh) * | 2012-01-23 | 2013-07-24 | 国际商业机器公司 | 控制分支预测逻辑的方法和装置 |
CN103248649A (zh) * | 2012-02-09 | 2013-08-14 | 宇龙计算机通信科技(深圳)有限公司 | 应用的分类管理方法、设备及系统 |
CN108880908A (zh) * | 2018-07-09 | 2018-11-23 | 上海盛付通电子支付服务有限公司 | 一种监控方法及其服务器 |
CN109815238A (zh) * | 2019-01-18 | 2019-05-28 | 武汉轻工大学 | 用严格平衡二叉树实现数据库的动态添加方法及装置 |
CN111026765A (zh) * | 2019-12-16 | 2020-04-17 | 武汉轻工大学 | 严格平衡二叉树的动态处理方法、设备、存储介质及装置 |
CN111311094A (zh) * | 2020-02-14 | 2020-06-19 | 上海东普信息科技有限公司 | 供应链项目分析方法、装置、设备及存储介质 |
CN112508440A (zh) * | 2020-12-18 | 2021-03-16 | 深圳市赛为智能股份有限公司 | 数据质量评估方法、装置、计算机设备及存储介质 |
-
2021
- 2021-09-10 CN CN202111064284.7A patent/CN113722016B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1077845A (en) * | 1963-11-07 | 1967-08-02 | Ibm | Improvements in data processing systems |
US20050187912A1 (en) * | 2004-02-24 | 2005-08-25 | International Business Machines Corporation | Management of configuration data using extensible markup language |
US20090106738A1 (en) * | 2007-10-18 | 2009-04-23 | Trendium, Inc. | Methods, systems, and computer program products for real time configuration and analysis of network based algorithmic service objectives |
US8095677B1 (en) * | 2009-05-21 | 2012-01-10 | Sendmail, Inc. | Configuration rule generation with compressed address sets |
CN103218209A (zh) * | 2012-01-23 | 2013-07-24 | 国际商业机器公司 | 控制分支预测逻辑的方法和装置 |
CN103248649A (zh) * | 2012-02-09 | 2013-08-14 | 宇龙计算机通信科技(深圳)有限公司 | 应用的分类管理方法、设备及系统 |
CN102646111A (zh) * | 2012-02-16 | 2012-08-22 | 中国测绘科学研究院 | 一种基于知识库的通用关联信息查询树的快速构建方法 |
CN108880908A (zh) * | 2018-07-09 | 2018-11-23 | 上海盛付通电子支付服务有限公司 | 一种监控方法及其服务器 |
CN109815238A (zh) * | 2019-01-18 | 2019-05-28 | 武汉轻工大学 | 用严格平衡二叉树实现数据库的动态添加方法及装置 |
CN111026765A (zh) * | 2019-12-16 | 2020-04-17 | 武汉轻工大学 | 严格平衡二叉树的动态处理方法、设备、存储介质及装置 |
CN111311094A (zh) * | 2020-02-14 | 2020-06-19 | 上海东普信息科技有限公司 | 供应链项目分析方法、装置、设备及存储介质 |
CN112508440A (zh) * | 2020-12-18 | 2021-03-16 | 深圳市赛为智能股份有限公司 | 数据质量评估方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113722016B (zh) | 2024-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10042654B2 (en) | Computer-based distribution of large sets of regular expressions to a fixed number of state machine engines for products and services | |
CN106909543B (zh) | 一种规则引擎的模式匹配方法和装置 | |
CN109508326B (zh) | 用于处理数据的方法、装置和系统 | |
CN109144619A (zh) | 图标字体信息处理方法、装置及系统 | |
CN109597810B (zh) | 一种任务切分方法、装置、介质及电子设备 | |
CN111078230A (zh) | 一种代码生成方法和装置 | |
CN112906206A (zh) | 数字孪生模型构建方法和装置 | |
US11947958B2 (en) | Method, device, and program product for managing object in software development project | |
CN113094776B (zh) | 可视化组件模型数据构建的方法、系统及电子设备 | |
CN112529711B (zh) | 基于区块链虚拟机复用的交易处理方法及装置 | |
CN112817562A (zh) | 业务处理的方法和装置 | |
CN114489954A (zh) | 基于虚拟化平台的租户创建方法、租户访问方法及设备 | |
CN111382315A (zh) | 子图同构匹配结果的合并方法、电子设备及存储介质 | |
CN111125503A (zh) | 用于生成信息的方法和装置 | |
CN113094415B (zh) | 数据抽取方法、装置、计算机可读介质及电子设备 | |
US10606843B2 (en) | Irreducible modules | |
CN110765100B (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
CN111951112A (zh) | 基于区块链的智能合约执行方法、终端设备和存储介质 | |
CN113722016A (zh) | 应用程序配置方法、装置、设备、存储介质及程序产品 | |
CN116109114A (zh) | 一种常态化政务服务数据处理方法及系统 | |
CN113691403A (zh) | 拓扑节点配置方法、相关装置及计算机程序产品 | |
CN113377708A (zh) | 二维设计图向三维设计图转换的方法及装置 | |
CN112527443A (zh) | 提示框显示方法、装置、电子设备及计算机可读存储介质 | |
CN113742321A (zh) | 一种数据更新的方法和装置 | |
CN111552847A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |