CN106227736A - 一种基于链表结构的逻辑流程实现方法及装置 - Google Patents
一种基于链表结构的逻辑流程实现方法及装置 Download PDFInfo
- Publication number
- CN106227736A CN106227736A CN201610542243.7A CN201610542243A CN106227736A CN 106227736 A CN106227736 A CN 106227736A CN 201610542243 A CN201610542243 A CN 201610542243A CN 106227736 A CN106227736 A CN 106227736A
- Authority
- CN
- China
- Prior art keywords
- node
- logic
- list structure
- task
- 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
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/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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种基于链表结构的逻辑流程实现方法及装置,涉及数据处理领域,该基于链表结构的逻辑流程实现方法包括建立树状链表结构;当叶子节点触发第一逻辑时,自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑并根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列;当所述树状链表结构的根节点执行完所述第一逻辑后,根据所述执行队列从所述根节点逆序至所述叶子节点执行第二逻辑。在树状结构上先自叶子节点触发逻辑后,按叶子节点到根节点顺序执行第一逻辑,再从根节点向触发逻辑行为的叶子节点倒推执行第二逻辑,可以有效提高系统的可靠性,以及在面向对象的复杂逻辑时,易于实现和控制,并明确执行状态。
Description
技术领域
本发明实施例涉及数据处理领域,尤其涉及一种基于链表结构的逻辑流程实现方法及装置。
背景技术
在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,深度为2的结点数为n_2,则n_0=n_2+1。
一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。
但通常情况下,树状结构是一个或多个节点的有限集合,并不仅限于二叉树,所以树的结点是指包含一个数据元素及若干指向子树的分支;前驱节点是指当前节点是上一节点的子节点,后继节点是指下一节点是当前节点的子节点。
链表则是是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
目前大多数程序中使用的是基于观察者模式的事件消息订阅/发布机制,如:PureMVC,Cairngorm等基于信息中心的事件中心广播机制。这样把程序割裂成一个个分隔开的模块,在起到解耦模式的同时也淡化了模块间的联系,使得需要按顺序协同完成的复杂程序逻辑,实现起来变得非常麻烦,且不可控不可查。所以往往在程序开发的时候需要回避这样的功能,从而使得要完成一条完整的程序行为变得困难。
发明内容
为了克服现有的相关产品的所有不足,本发明实施例提出一种基于链表结构的逻辑流程实现方法及装置,可以解决执行按顺序协同完成的复杂逻辑时不可控不可查的缺点。
本发明实施例解决其技术问题所采用的技术方案是:
本发明实施例所提供的一种基于链表结构的逻辑流程实现方法,包括以下步骤:
建立树状链表结构;
当叶子节点触发第一逻辑时,自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑并根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列;
当所述树状链表结构的根节点执行完所述第一逻辑后,根据所述执行队列从所述根节点逆序至所述叶子节点执行第二逻辑。
作为本发明实施例的进一步改进,所述自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑并根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列包括:
将所述叶子节点加入执行队列的队尾,控制所述叶子节点处理自身的任务,所处叶子节点处理完所述任务后,将任务数据和所述执行队列发送给所述叶子节点的前驱节点作为当前节点进行任务处理;
将所述当前节点加入所述执行队列,所述当前节点处理完自身的任务后,将任务数据和所述执行队列发送给所述当前节点的前驱节点进行任务处理,重复该过程直至到达所述树状链表结构的根节点;
将所述根节点加入所述执行队列生成从所述根节点到所述叶子节点的执行队列,所述根节点处理自身的任务。
作为本发明实施例的进一步改进,所述从根据所述执行队列从所述根节点逆序至所述叶子节点执行第二逻辑具体为:
根节点将任务数据以及执行队列传输给所述根节点的后继节点,所述根节点的后续节点作为当前节点根据所述任务数据进行任务处理,并将处理数据以及余下的执行队列传输到该所述当前节点的后继节点进行任务处理,重复该过程直至到达所述叶子节点;
所述叶子节点处理自身的任务。
作为本发明实施例的进一步改进,所述当所述叶子节点具有前驱节点时之前还包括:
判断所述叶子节点是否具有前驱节点;
其中,所述树状链表结构中的节点包括根节点、常规节点以及叶子节点;所述根节点没有前驱节点;所述常规节点既有前驱节点也有后继节点;所述叶子节点有且只有前驱节点没有后继节点。
作为本发明实施例的进一步改进,所述链表结构的根节点有一个,所述根节点至少有一个后继节点,所述根节点调动全部资源对任务进行处理。
本发明所实施例所提供的一种基于链表结构的逻辑流程实现装置,包括:主体模块、第一逻辑处理模块和第二逻辑处理模块;
所述主体模块用于建立树状链表结构;
所述第一逻辑处理模块用于当叶子节点触发第一逻辑时,自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑并根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列;
所述第二逻辑处理模块用于当所述树状链表结构的根节点执行完所述第一逻辑后,根据所述执行队列从所述根节点逆序至所述叶子节点执行第二逻辑。
作为本发明实施例的进一步改进,所述第一逻辑处理模块用于:
将所述叶子节点加入执行队列的队尾,控制所述叶子节点处理自身的任务,所处叶子节点处理完所述任务后,将任务数据和所述执行队列发送给所述叶子节点的前驱节点作为当前节点进行任务处理;
将所述当前节点加入所述执行队列,所述当前节点处理完自身的任务后,将任务数据和所述执行队列发送给所述当前节点的前驱节点进行任务处理,重复该过程直至到达所述树状链表结构的根节点;
将所述根节点加入所述执行队列生成从所述根节点到所述叶子节点的执行队列,所述根节点处理自身的任务。
作为本发明实施例的进一步改进,所述第二逻辑处理模块用于:
所述根节点将任务数据以及执行队列传输给所述根节点的后继节点,所述根节点的后续节点作为当前节点根据所述任务数据进行任务处理,并将处理数据以及余下的执行队列传输到该所述当前节点的后继节点进行任务处理,重复该过程直至到达所述叶子节点;
所述叶子节点处理自身的任务。
作为本发明实施例的进一步改进,所述主体模块还包括:
判断单元,用于判断所述叶子节点是否具有前驱节点;
其中,所述树状链表结构中的节点包括根节点、常规节点以及叶子节点;所述根节点没有前驱节点;所述常规节点既有前驱节点也有后继节点;所述叶子节点有且只有前驱节点没有后继节点。
作为本发明实施例的进一步改进,所述根节点有一个,所述根节点至少有一个后继节点,所述根节点调动装置全部资源对问题进行处理。
与现有技术相比,本发明有以下优点:
本发明实施例所述的基于链表结构的逻辑流程实现方法及装置,通过在树状结构上先自叶子节点触发逻辑后,按叶子节点到根节点顺序执行第一逻辑,再从根节点向触发逻辑行为的叶子节点倒推执行第二逻辑,可以有效提高系统的可靠性,以及在面向对象的复杂逻辑时,易于实现和控制,并明确执行状态。
附图说明
图1为本发明所述基于链表结构的逻辑流程实现方法第一实施例的流程图;
图2为本发明所述基于链表结构的逻辑流程实现方法第二实施例的流程图;
图3为本发明所述基于链表结构的逻辑流程实现装置第一实施例的原理结构图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
实施例一
参阅图1所示,为本发明所述基于链表结构的逻辑流程实现方法的第一实施例,包括以下步骤:
S101:建立树状链表结构;
在本发明实施例中,所述链表结构中的节点包括根节点、常规节点以及叶子节点,当链表结构中的某个节点触发逻辑时,对链表结构中的各个节点进行判断:若当前节点没有前驱节点,则当前节点为根节点;若当前节点既有前驱节点也有后继节点,则当前节点为常规节点;若当前节点有且只有前驱节点没有后继节点,则当前节点为叶子节点。
S102:当叶子节点触发第一逻辑时,自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑并根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列;
在本发明实施例中,所述第一逻辑由叶子节点触发开始,自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑,当到达所述根节点时,第一逻辑执行完毕;
在本发明实施例中,所述节点触发逻辑是指从该节点开始执行面向对象的逻辑,描述和论证程序行为的逻辑,又称霍尔逻辑;程序和逻辑有着本质的联系;如果把程序看成一个执行过程,它接收一些信息,又输出一些信息,程序逻辑的基本方法是先给出建立程序和逻辑间联系的形式化方法;霍尔逻辑的基本思想是用逻辑描述程序的执行结果,与之对应的另一种方法是用逻辑刻画程序的全部行为,即把程序的执行过程看成机器状态的一个变化序列。
S103:当所述树状链表结构的根节点执行完所述第一逻辑后,根据所述执行队列从所述根节点逆序至所述叶子节点执行第二逻辑;
在本发明实施例中,当前节点为根节点时,根节点处理完成任务后,按照所述执行队列的顺序,将问题处理执行的结果或中间数据以及执行队列传输给执行队列中最后一个子节点;所述执行队列中最后一个子节点为与根节点相连的子节点,即根节点的后继节点;所述链表结构的根节点有且只有一个,且所述根节点至少有一个后继节点;所述根节点可以调动装置全部资源对问题进行处理;所述执行队列中最后一个子节点根据接收的数据进行任务处理,并将得到的处理结果以及余下的队列传输到该节点的下一子节点即后继节点进行任务处理,判断当前节点是否有后继节点,若有后继节点则重复该过程直至队列的尾部,即到达第一逻辑的初始触发节点,当回到初始触发节点时,第二逻辑执行完毕。
在本发明实施例中,所述的基于链表结构的逻辑流程实现方法通过建立树状链表结构,当叶子节点触发第一逻辑时并自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑,当所述树状链表结构的根节点执行完所述第一逻辑后,根据所述执行队列的顺序,从所述根节点至所述叶子节点执行第二逻辑,可以有效提高系统的可靠性,以及在面向对象的复杂逻辑时,易于实现和控制,并明确执行状态。
实施例二
参阅图2所示,为本发明所述基于链表结构的逻辑流程实现方法的第二实施例,包括以下步骤:
S201:建立树状链表结构;
在本发明实施例中,所述链表结构中的节点包括根节点、常规节点以及叶子节点,当链表结构中的某个节点触发逻辑时,对链表结构中的各个节点进行判断:若当前节点没有前驱节点,则当前节点为根节点;若当前节点既有前驱节点也有后继节点,则当前节点为常规节点;若当前节点有且只有前驱节点没有后继节点,则当前节点为叶子节点。
S202:将所述叶子节点加入执行队列的队尾,控制所述叶子节点处理自身的任务,所处叶子节点处理完所述任务后,将任务数据和所述执行队列发送给所述叶子节点的前驱节点作为当前节点进行任务处理;
在本发明实施例中,当链表结构中的一个叶子节点触发逻辑时,所述叶子节点即当前节点为初始触发节点,开始执行第一逻辑并控制当前节点处理自身的任务,根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列,所述叶子节点将自身加入执行队列的队尾,将任务数据和所述执行队列发送给所述叶子节点的前驱节点作为当前节点进行任务处理;前述的队列是指一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
S203:将所述当前节点加入所述执行队列,所述当前节点处理完自身的任务后,将任务数据和所述执行队列发送给所述当前节点的前驱节点进行任务处理,重复该过程直至到达所述树状链表结构的根节点;
在本发明实施例中,将所述根节点加入所述执行队列生成从所述根节点到所述叶子节点的执行队列,当前节点会先处理自身的任务,处理完成后将所述当前节点加入执行队列的队尾,并将数据以及所述执行队列传输给当前节点的前驱节点;前驱节点接收到数据后,处理完成自身的任务后将自身加入所述执行队列的队尾,将任务数据以及所述执行队列传输给所述当前节点的前驱节点,当前节点依次将数据以及所述执行队列传输给该节点的前驱节点,直至当前节点为根节点,所述第一逻辑执行完毕。
在本发明实施例中,所述节点触发逻辑是指从该节点开始执行面向对象的逻辑,描述和论证程序行为的逻辑,又称霍尔逻辑;程序和逻辑有着本质的联系;如果把程序看成一个执行过程,它接收一些信息,又输出一些信息,程序逻辑的基本方法是先给出建立程序和逻辑间联系的形式化方法;霍尔逻辑的基本思想是用逻辑描述程序的执行结果,与之对应的另一种方法是用逻辑刻画程序的全部行为,即把程序的执行过程看成机器状态的一个变化序列。
S204:根节点将任务数据以及执行队列传输给所述根节点的后继节点,所述根节点的后续节点作为当前节点根据所述任务数据进行任务处理,并将处理数据以及余下的执行队列传输到该所述当前节点的后继节点进行任务处理,重复该过程直至到达所述叶子节点;
在本发明实施例中,当前节点开始执行第二逻辑并控制所述根节点处理自身的任务,所述执行第二逻辑的初始节点为根节点,所述根节点可以调动装置全部资源对问题进行处理,所述根节点接收其前驱节点的数据,开始执行第二逻辑并控制所述根节点处理自身的任务。
在本发明实施例中,当前节点为根节点时,根节点处理完成任务后,按照所述执行队列的顺序,将问题处理执行的结果或中间数据以及执行队列传输给执行队列中最后一个子节点;所述执行队列中最后一个子节点为与根节点相连的子节点,即根节点的后继节点;所述链表结构的根节点有且只有一个,且所述根节点至少有一个后继节点;所述执行队列中最后一个子节点根据接收的数据进行任务处理,并将得到的处理结果以及余下的队列传输到该节点的下一子节点即后继节点进行任务处理,判断当前节点是否有后继节点,若有后继节点则重复该过程直至执行队列的尾部,即到达第一逻辑的初始触发节点。
S205:所述叶子节点处理自身的任务;
在本发明实施例中,当所述执行队列回到初始触发的叶子节点时,第二逻辑执行完毕。
在本发明实施例中,所述基于链表结构的逻辑流程实现方法是建立树状链表结构,将所述叶子节点加入执行队列的队尾,控制所述叶子节点处理自身的任务,所处叶子节点处理完所述任务后,将任务数据和所述执行队列发送给所述叶子节点的前驱节点作为当前节点进行任务处理,将所述当前节点加入所述执行队列,所述当前节点处理完自身的任务后,将任务数据和所述执行队列发送给所述当前节点的前驱节点进行任务处理,重复该过程直至到达所述树状链表结构的根节点,所述根节点将任务数据以及执行队列传输给所述根节点的后继节点,所述根节点的后续节点作为当前节点根据所述任务数据进行任务处理,并将处理数据以及余下的执行队列传输到该所述当前节点的后继节点进行任务处理,重复该过程直至到达所述叶子节点,通过该过程可以有效提高系统的可靠性,以及在面向对象的复杂逻辑时,易于实现和控制,并明确执行状态。
实施例三
参阅图3所示,为本发明所述基于链表结构的逻辑流程实现装置的第一实施例,包括:主体模块10、第一逻辑处理模块20和第二逻辑处理模块30。
所述主体模块10用于建立链表结构,所述主体模块10还用于判断并确定链表结构中的各个节点,对链表结构中的各个节点确定方式为:若当前节点没有前驱节点,则当前节点为根节点;若当前节点既有前驱节点也有后继节点,则当前节点为常规节点;若当前节点有且只有前驱节点没有后继节点,则当前节点为叶子节点。
可选的,所述链表结构的根节点有且只有一个,且所述根节点至少有一个后继节点;所述根节点可以调动装置全部资源对问题进行处理。
所述第一逻辑处理模块20用于当叶子节点触发第一逻辑时,自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑并根据所述执行顺序生成从所述根节点逆序到所述叶子节点的执行队列;
在本发明实施例中,所述第一逻辑由叶子节点触发开始,自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑,所述第一逻辑处理模块20当执行到达所述根节点时,第一逻辑执行完毕;
在本发明实施例中,所述节点触发逻辑是指从该节点开始执行面向对象的逻辑,描述和论证程序行为的逻辑,又称霍尔逻辑;程序和逻辑有着本质的联系;如果把程序看成一个执行过程,它接收一些信息,又输出一些信息,程序逻辑的基本方法是先给出建立程序和逻辑间联系的形式化方法;霍尔逻辑的基本思想是用逻辑描述程序的执行结果,与之对应的另一种方法是用逻辑刻画程序的全部行为,即把程序的执行过程看成机器状态的一个变化序列。
所述第二逻辑处理模块30用于当所述树状链表结构的根节点执行完所述第一逻辑后,根据所述执行队列的顺序,从所述根节点至所述叶子节点执行第二逻辑;
在本发明实施例中,当前节点为根节点时,根节点处理完成任务后,按照所述执行队列的顺序,将问题处理执行的结果或中间数据以及执行队列传输给执行队列中最后一个子节点;所述执行队列中最后一个子节点为与根节点相连的子节点,即根节点的后继节点;所述链表结构的根节点有且只有一个,且所述根节点至少有一个后继节点;所述根节点可以调动装置全部资源对问题进行处理;所述执行队列中最后一个子节点根据接收的数据进行任务处理,并将得到的处理结果以及余下的队列传输到该节点的下一子节点即后继节点进行任务处理,判断当前节点是否有后继节点,若有后继节点则重复该过程直至队列的尾部,即到达第一逻辑的初始触发节点,当回到初始触发节点时,第二逻辑执行完毕。
在本发明实施例中,所述的基于链表结构的逻辑流程实现方法通过主体模块10建立树状链表结构,通过第一逻辑处理模块20执行当叶子节点触发第一逻辑时并自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑,通过第二逻辑处理模块30执行当所述树状链表结构的根节点执行完所述第一逻辑后,根据所述执行队列的顺序,从所述根节点至所述叶子节点执行第二逻辑,可以有效提高系统的可靠性,以及在面向对象的复杂逻辑时,易于实现和控制,并明确执行状态。
实施例四
参阅图3所示,在第一实施例的基础上,为本发明所述基于链表结构的逻辑流程实现装置的第二实施例,包括:主体模块10、第一逻辑处理模块20和第二逻辑处理模块30。
所述主体模块10用于建立链表结构,所述主体模块10还包括判断单元101,所述判断单元101用于判断并确定各个节点,对链表结构中的各个节点确定方式为:若当前节点没有前驱节点,则当前节点为根节点;若当前节点既有前驱节点也有后继节点,则当前节点为常规节点;若当前节点有且只有前驱节点没有后继节点,则当前节点为叶子节点;所述链表结构的根节点有且只有一个,且所述根节点至少有一个后继节点;所述根节点可以调动装置全部资源对问题进行处理。
所述第一逻辑处理模块20用于当叶子节点触发第一逻辑时,自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑并根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列。
所述第一逻辑处理模块20用于将所述叶子节点加入执行队列的队尾,控制所述叶子节点处理自身的任务,所处叶子节点处理完所述任务后,将任务数据和所述执行队列发送给所述叶子节点的前驱节点作为当前节点进行任务处理;
在本发明实施例中,当链表结构中的一个叶子节点触发逻辑时,所述叶子节点即当前节点为初始触发节点,开始执行第一逻辑并控制当前节点处理自身的任务,根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列,所述叶子节点将自身加入执行队列的队尾,将任务数据和所述执行队列发送给所述叶子节点的前驱节点作为当前节点进行任务处理;前述的队列是指一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
所述第一逻辑处理模块20用于将所述当前节点加入所述执行队列,所述当前节点处理完自身的任务后,将任务数据和所述执行队列发送给所述当前节点的前驱节点进行任务处理,重复该过程直至到达所述树状链表结构的根节点;
在本发明实施例中,将所述根节点加入所述执行队列生成从所述根节点到所述叶子节点的执行队列,当前节点会先处理自身的任务,处理完成后将数据以及所述执行队列传输给当前节点的前驱节点,当前节点加入执行队列的队尾,;前驱节点接收到数据后,处理完成自身的任务后将自身加入所述执行队列的队尾,将任务数据以及所述执行队列传输给所述当前节点的前驱节点,当前节点依次通过所述将数据以及所述执行队列传输给该节点的前驱节点,直至当前节点为根节点,所述第一逻辑执行完毕。
在本发明实施例中,所述节点触发逻辑是指从该节点开始执行面向对象的逻辑,描述和论证程序行为的逻辑,又称霍尔逻辑;程序和逻辑有着本质的联系;如果把程序看成一个执行过程,它接收一些信息,又输出一些信息,程序逻辑的基本方法是先给出建立程序和逻辑间联系的形式化方法;霍尔逻辑的基本思想是用逻辑描述程序的执行结果,与之对应的另一种方法是用逻辑刻画程序的全部行为,即把程序的执行过程看成机器状态的一个变化序列。
所述第二逻辑处理模块30用于当所述树状链表结构的根节点执行完所述第一逻辑后,根据所述执行队列从所述根节点逆序至所述叶子节点执行第二逻辑;
所述第二逻辑处理模块30用于根节点将任务数据以及执行队列传输给所述根节点的后继节点,所述根节点的后续节点作为当前节点根据所述任务数据进行任务处理,并将处理数据以及余下的执行队列传输到该所述当前节点的后继节点进行任务处理,重复该过程直至到达所述叶子节点;
在本发明实施例中,当前节点开始执行第二逻辑并控制所述根节点处理自身的任务,所述执行第二逻辑的叶子节点为根节点,所述根节点可以调动装置全部资源对问题进行处理,所述根节点接收其前驱节点的数据,开始执行第二逻辑并控制所述根节点处理自身的任务。
在本发明实施例中,当前节点为根节点时,根节点处理完成任务后,按照所述执行队列的顺序,将问题处理执行的结果或中间数据以及执行队列传输给执行队列中最后一个子节点;所述执行队列中最后一个子节点为与根节点相连的子节点,即根节点的后继节点;所述链表结构的根节点有且只有一个,且所述根节点至少有一个后继节点;所述执行队列中最后一个子节点根据接收的数据进行任务处理,并将得到的处理结果以及余下的队列传输到该节点的下一子节点即后继节点进行任务处理,判断当前节点是否有后继节点,若有后继节点则重复该过程直至执行队列的尾部,即到达第一逻辑的初始触发节点。
所述第二逻辑处理模块30用于所述叶子节点处理自身的任务;
在本发明实施例中,当所述执行队列回到初始触发的叶子节点时,第二逻辑执行完毕。
在本发明实施例中,所述基于链表结构的逻辑流程实现方法是主体模块10建立树状链表结构,所述第一逻辑处理模块20将所述叶子节点加入执行队列的队尾,控制所述叶子节点处理自身的任务,所处叶子节点处理完所述任务后,将任务数据和所述执行队列发送给所述叶子节点的前驱节点作为当前节点进行任务处理,将所述当前节点加入所述执行队列,所述当前节点处理完自身的任务后,将任务数据和所述执行队列发送给所述当前节点的前驱节点进行任务处理,重复该过程直至到达所述树状链表结构的根节点,所述第二逻辑处理模块30控制所述根节点将任务数据以及执行队列传输给所述根节点的后继节点,所述根节点的后续节点作为当前节点根据所述任务数据进行任务处理,并将处理数据以及余下的执行队列传输到该所述当前节点的后继节点进行任务处理,重复该过程直至到达所述叶子节点,通过该过程,在树状结构上先自叶子节点触发逻辑后,按叶子节点到根节点顺序执行第一逻辑,再从根节点向触发逻辑行为的叶子节点倒推执行第二逻辑,可以有效提高系统的可靠性,以及在面向对象的复杂逻辑时,易于实现和控制,并明确执行状态。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.一种基于链表结构的逻辑流程实现方法,其特征在于,包括:
建立树状链表结构;
当叶子节点触发第一逻辑时,自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑并根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列;
当所述树状链表结构的根节点执行完所述第一逻辑后,根据所述执行队列从所述根节点逆序至所述叶子节点执行第二逻辑。
2.根据权1所述的方法,其特征在于,所述自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑并根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列包括:
将所述叶子节点加入执行队列的队尾,控制所述叶子节点处理自身的任务,所处叶子节点处理完所述任务后,将任务数据和所述执行队列发送给所述叶子节点的前驱节点作为当前节点进行任务处理;
将所述当前节点加入所述执行队列,所述当前节点处理完自身的任务后,将任务数据和所述执行队列发送给所述当前节点的前驱节点进行任务处理,重复该过程直至到达所述树状链表结构的根节点;
将所述根节点加入所述执行队列生成从所述根节点到所述叶子节点的执行队列,所述根节点处理自身的任务。
3.根据权利要求1所述的方法,其特征在于,所述从根据所述执行队列从所述根节点逆序至所述叶子节点执行第二逻辑具体为:
根节点将任务数据以及执行队列传输给所述根节点的后继节点,所述根节点的后续节点作为当前节点根据所述任务数据进行任务处理,并将处理数据以及余下的执行队列传输到该所述当前节点的后继节点进行任务处理,重复该过程直至到达所述叶子节点;
所述叶子节点处理自身的任务。
4.根据权利要求1所述的基于链表结构的逻辑流程实现方法,其特征在于,所述当所述叶子节点具有前驱节点时之前还包括:
判断所述叶子节点是否具有前驱节点;
其中,所述树状链表结构中的节点包括根节点、常规节点以及叶子节点;所述根节点没有前驱节点;所述常规节点既有前驱节点也有后继节点;所述叶子节点有且只有前驱节点没有后继节点。
5.根据权利要求4所述的基于链表结构的逻辑流程实现方法,其特征在于,所述链表结构的根节点有一个,所述根节点至少有一个后继节点,所述根节点调动全部资源对任务进行处理。
6.一种基于链表结构的逻辑流程实现装置,其特征在于,包括:主体模块、第一逻辑处理模块和第二逻辑处理模块;
所述主体模块用于建立树状链表结构;
所述第一逻辑处理模块用于当叶子节点触发第一逻辑时,自所述叶子节点向所述树状链表结构的根节点顺序执行所述第一逻辑并根据所述执行顺序生成从所述根节点到所述叶子节点的执行队列;
所述第二逻辑处理模块用于当所述树状链表结构的根节点执行完所述第一逻辑后,根据所述执行队列从所述根节点逆序至所述叶子节点执行第二逻辑。
7.根据权利要求6所述的基于链表结构的逻辑流程实现装置,其特征在于,所述第一逻辑处理模块用于:
将所述叶子节点加入执行队列的队尾,控制所述叶子节点处理自身的任务,所处叶子节点处理完所述任务后,将任务数据和所述执行队列发送给所述叶子节点的前驱节点作为当前节点进行任务处理;
将所述当前节点加入所述执行队列,所述当前节点处理完自身的任务后,将任务数据和所述执行队列发送给所述当前节点的前驱节点进行任务处理,重复该过程直至到达所述树状链表结构的根节点;
将所述根节点加入所述执行队列生成从所述根节点到所述叶子节点的执行队列,所述根节点处理自身的任务。
8.根据权利要求6所述的基于链表结构的逻辑流程实现装置,其特征在于,所述第二逻辑处理模块用于:
所述根节点将任务数据以及执行队列传输给所述根节点的后继节点,所述根节点的后续节点作为当前节点根据所述任务数据进行任务处理,并将处理数据以及余下的执行队列传输到该所述当前节点的后继节点进行任务处理,重复该过程直至到达所述叶子节点;
所述叶子节点处理自身的任务。
9.根据权利要求6所述的基于链表结构的逻辑流程实现装置,其特征在于,所述主体模块还包括:
判断单元,用于判断所述叶子节点是否具有前驱节点;
其中,所述树状链表结构中的节点包括根节点、常规节点以及叶子节点;所述根节点没有前驱节点;所述常规节点既有前驱节点也有后继节点;所述叶子节点有且只有前驱节点没有后继节点。
10.根据权利要求9所述的基于链表结构的逻辑流程实现装置,其特征在于:所述根节点有一个,所述根节点至少有一个后继节点,所述根节点调动装置全部资源对问题进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610542243.7A CN106227736A (zh) | 2016-07-11 | 2016-07-11 | 一种基于链表结构的逻辑流程实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610542243.7A CN106227736A (zh) | 2016-07-11 | 2016-07-11 | 一种基于链表结构的逻辑流程实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106227736A true CN106227736A (zh) | 2016-12-14 |
Family
ID=57519503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610542243.7A Pending CN106227736A (zh) | 2016-07-11 | 2016-07-11 | 一种基于链表结构的逻辑流程实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106227736A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168221A (zh) * | 2017-04-11 | 2017-09-15 | 北京智能管家科技有限公司 | 机器人行为表达方法及计算机可读介质 |
CN107342942A (zh) * | 2017-07-05 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种多节点控制器集群的信息传输方法及装置 |
CN109299337A (zh) * | 2018-10-19 | 2019-02-01 | 南威软件股份有限公司 | 一种基于迭代的图搜索方法 |
CN109697036A (zh) * | 2018-12-29 | 2019-04-30 | 北京金山安全软件有限公司 | 一种信息处理方法及装置 |
CN109814842A (zh) * | 2018-12-26 | 2019-05-28 | 施耐德万高(天津)电气设备有限公司 | 一种双电源自动转换开关的树型逻辑软件设计方法 |
CN109960186A (zh) * | 2017-12-25 | 2019-07-02 | 北京创昱科技有限公司 | 控制流程的处理方法、装置、电子设备和存储介质 |
CN112612597A (zh) * | 2020-12-30 | 2021-04-06 | 中国农业银行股份有限公司 | 一种生成线性任务队列方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828531A (zh) * | 2006-02-22 | 2006-09-06 | 上海普元信息技术有限责任公司 | 构件化软件系统中构件接口和运行逻辑的构建方法 |
CN101571810A (zh) * | 2009-05-31 | 2009-11-04 | 清华大学 | 执行程序的方法、验证程序结果的方法、装置及系统 |
CN102170710A (zh) * | 2010-02-26 | 2011-08-31 | 中兴通讯股份有限公司 | 一种在标签交换路径中实现叶子节点发现的方法及系统 |
CN103188048A (zh) * | 2013-02-01 | 2013-07-03 | 北京邮电大学 | 面向树形拓扑结构网络中对等通信的网络编码方法 |
-
2016
- 2016-07-11 CN CN201610542243.7A patent/CN106227736A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828531A (zh) * | 2006-02-22 | 2006-09-06 | 上海普元信息技术有限责任公司 | 构件化软件系统中构件接口和运行逻辑的构建方法 |
CN101571810A (zh) * | 2009-05-31 | 2009-11-04 | 清华大学 | 执行程序的方法、验证程序结果的方法、装置及系统 |
CN102170710A (zh) * | 2010-02-26 | 2011-08-31 | 中兴通讯股份有限公司 | 一种在标签交换路径中实现叶子节点发现的方法及系统 |
CN103188048A (zh) * | 2013-02-01 | 2013-07-03 | 北京邮电大学 | 面向树形拓扑结构网络中对等通信的网络编码方法 |
Non-Patent Citations (1)
Title |
---|
蒋烈辉: "固件代码逆向分析关键技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168221A (zh) * | 2017-04-11 | 2017-09-15 | 北京智能管家科技有限公司 | 机器人行为表达方法及计算机可读介质 |
CN107342942A (zh) * | 2017-07-05 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种多节点控制器集群的信息传输方法及装置 |
CN107342942B (zh) * | 2017-07-05 | 2020-09-18 | 苏州浪潮智能科技有限公司 | 一种多节点控制器集群的信息传输方法及装置 |
CN109960186A (zh) * | 2017-12-25 | 2019-07-02 | 北京创昱科技有限公司 | 控制流程的处理方法、装置、电子设备和存储介质 |
CN109299337A (zh) * | 2018-10-19 | 2019-02-01 | 南威软件股份有限公司 | 一种基于迭代的图搜索方法 |
CN109299337B (zh) * | 2018-10-19 | 2022-05-13 | 南威软件股份有限公司 | 一种基于迭代的图搜索方法 |
CN109814842A (zh) * | 2018-12-26 | 2019-05-28 | 施耐德万高(天津)电气设备有限公司 | 一种双电源自动转换开关的树型逻辑软件设计方法 |
CN109814842B (zh) * | 2018-12-26 | 2021-12-17 | 施耐德万高(天津)电气设备有限公司 | 一种双电源自动转换开关的树型逻辑软件设计方法 |
CN109697036A (zh) * | 2018-12-29 | 2019-04-30 | 北京金山安全软件有限公司 | 一种信息处理方法及装置 |
CN112612597A (zh) * | 2020-12-30 | 2021-04-06 | 中国农业银行股份有限公司 | 一种生成线性任务队列方法及装置 |
CN112612597B (zh) * | 2020-12-30 | 2023-11-03 | 中国农业银行股份有限公司 | 一种生成线性任务队列方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106227736A (zh) | 一种基于链表结构的逻辑流程实现方法及装置 | |
JP6755325B2 (ja) | 状態制御方法及び装置 | |
CN103988212B (zh) | 用于在状态机中路由的方法及系统 | |
RU2010136683A (ru) | Система обработки инструкций в режиме реального времени | |
JP2010532522A5 (zh) | ||
CN107256156A (zh) | 用于状态机中的检测的方法及系统 | |
CN108073687B (zh) | 随机游走、基于集群的随机游走方法、装置以及设备 | |
CN109460676A (zh) | 一种混合数据的脱敏方法、脱敏装置及脱敏设备 | |
CN108572970A (zh) | 一种结构化数据的处理方法和分布式处理系统 | |
Xu et al. | An effective shuffled frog leaping algorithm for solving hybrid flow-shop scheduling problem | |
CN103246484B (zh) | 一种数据存储方法、装置及系统 | |
CN106295670A (zh) | 数据处理方法及数据处理装置 | |
CN102541746A (zh) | 一种队列的数据处理方法和系统 | |
CN111914378A (zh) | 一种单振幅量子计算模拟方法 | |
CN106254270A (zh) | 一种队列管理方法及装置 | |
CN107992358A (zh) | 一种适用于核外图处理系统的异步io执行方法及系统 | |
KR20210024751A (ko) | 이종 메모리 장치를 포함하는 그래프 처리 시스템 및 그래프 처리 시스템의 동작방법 | |
CN107578107A (zh) | 模型训练方法和装置 | |
CN110502337B (zh) | 针对Hadoop MapReduce中混洗阶段的优化系统 | |
CN109284493B (zh) | 一种教育云平台上的随机题库实现方法及电子设备 | |
CN111126619A (zh) | 一种机器学习方法与装置 | |
Li et al. | An extraction algorithm for a set of elementary siphons based on mixed-integer programming | |
CN110532439B (zh) | 基于树搜索的同顺序部门决策流程生成方法、系统、装置 | |
Taylor et al. | Digital genesis: Computers, evolution and artificial life | |
CN106227036B (zh) | 一种对称离散事件系统在线控制律重构方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161214 |
|
WD01 | Invention patent application deemed withdrawn after publication |