一种流程图排序方法、装置、电子设备及存储介质与流程

文档序号:26050763发布日期:2021-07-27 15:25阅读:167来源:国知局
一种流程图排序方法、装置、电子设备及存储介质与流程

本发明实施例涉及图形布局技术领域,尤其涉及一种流程图排序方法、装置、电子设备及存储介质。



背景技术:

目前,图形布局应用于各类流程处理业务中,由于智能化自动化的业务处理流程变的越来越复杂,而与复杂的业务处理流程对应的流程拓扑也很复杂。通过对流程拓扑进行排序能够大大提高业务的分析效果,这使得流程图的拓扑排序成为图形布局技术领域的研究要点。

现有技术中,当拓扑结构稍微复杂时,通过现有的gmf(graphicalmodelingframework,图形化编辑器)排序流程布局的算法会造成流程图节点布局错乱等问题,且现有的流程图节点间的连接方式存在连线穿过节点等问题。由此可见,现有的流程图排序方法难以保证流程图中拓扑元素的排序效果。



技术实现要素:

本发明实施例提供一种流程图排序方法、装置、电子设备及存储介质,完善了流程图中拓扑元素的排序效果。

第一方面,本发明实施例提供了一种流程图排序方法,包括:

获取待处理有向流程图;其中,待处理有向流程图由拓扑元素构成,拓扑元素包括节点以及有向边;

根据待处理有向流程图的拓扑元素确定至少一个分层节点集合;其中,分层节点集合包括至少一个节点;

确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。

第二方面,本发明实施例还提供了一种流程图排序装置,包括:

待处理有向流程图获取模块,用于获取待处理有向流程图;其中,待处理有向流程图由拓扑元素构成,拓扑元素包括节点以及有向边;

分层节点集合确定模块,用于根据待处理有向流程图的拓扑元素确定至少一个分层节点集合;其中,分层节点集合包括至少一个节点;

拓扑元素排序模块,用于确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。

第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的流程图排序方法。

第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的流程图排序方法。

本实施例的技术方案,通过获取由节点以及有向边等拓扑元素构成的待处理有向流程图,以根据待处理有向流程图的拓扑元素确定至少一个包括至少一个节点的分层节点集合,进一步确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。由于节点坐标可以依据拓扑元素的排序需求设置,从而有效约束每个节点的位置。因此,根据节点坐标对对待处理有向流程图的拓扑元素重新进行排序可以实现拓扑元素的按需排序,以使重新排序的拓扑元素更具直观性和美观性,解决了现有流程图排序方法引起的流程图拓扑元素排序效果差的问题,完善了流程图中拓扑元素的排序效果。

附图说明

图1是本发明实施例一提供的一种流程图排序方法的流程图;

图2是本发明实施例二提供的一种流程图排序方法的流程图;

图3是本发明实施例三提供的一种流程图排序方法的流程图;

图4是本发明实施例三提供的一种基准节点间纵向间距的示意图;

图5是本发明实施例三提供的一种基准节点间横向间距的示意图;

图6是本发明实施例三提供的一种同一待处理分层节点集合中待处理分层节点的分布的示意图;

图7为本发明实施例四所提供的一种待处理有向流程图的示意图;

图8是本发明实施例四提供的一种待处理有向流程图重新排序后的示意图;

图9是本发明实施例五提供的一种流程图排序装置的示意图;

图10为本发明实施例六提供的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。

另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1是本发明实施例一提供的一种流程图排序方法的流程图,本实施例可适用于提升流程图整体观看效果的情况,该方法可以由流程图排序装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。相应的,如图1所示,该方法包括如下操作:

s110、获取待处理有向流程图。

其中,待处理有向流程图可以是需要重新进行拓扑排序的有向流程图。可选的,待处理有向流程图可以由拓扑元素构成,拓扑元素可以包括节点以及有向边。其中,节点可以是代表某一具体操作或步骤,是流程图中某一环节的抽象表达。有向边可以连接两个节点,且具有指示方向。

在本发明实施例中,可以首先获取需要重新进行拓扑排序的有向流程图。

s120、根据待处理有向流程图的拓扑元素确定至少一个分层节点集合。

其中,分层节点集合可以是由待处理有向流程图的节点构成的集合,各分层节点集合中的节点不重复,且全部分层节点集合中的节点总数量与待处理有向图的节点总数量相同。分节点集合可以包括至少一个节点。

在本发明实施例中,可以首先确定待处理有向流程图中各节点的有向边,并根据各节点的有向边的指向将待处理有向流程图中的节点进行划分,得到至少一个分层节点集合。

s130、确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。

在本发明实施例中,可以根据分层节点集合中节点的数量以及预设的节点间的间距确定节点坐标,进一步根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。根据节点坐标对待处理有向流程图的拓扑元素重新进行排序可以使得同一分层节点集合中的节点位于同一水平高度,并使不同分层节点集合中的节点在竖直方向具有美观对称的布局方式。

本实施例的技术方案,通过获取由节点以及有向边等拓扑元素构成的待处理有向流程图,以根据待处理有向流程图的拓扑元素确定至少一个包括至少一个节点的分层节点集合,进一步确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。由于节点坐标可以依据拓扑元素的排序需求设置,从而有效约束每个节点的位置。因此,根据节点坐标对对待处理有向流程图的拓扑元素重新进行排序可以实现拓扑元素的按需排序,以使重新排序的拓扑元素更具直观性和美观性,解决了现有流程图排序方法引起的流程图拓扑元素排序效果差的问题,完善了流程图中拓扑元素的排序效果。

实施例二

图2是本发明实施例二提供的一种流程图排序方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了根据待处理有向流程图的拓扑元素确定分层节点集合,并根据分层节点集合中节点的节点坐标对待处理有向流程图的拓扑元素重新进行排序的多种可选的实施方案,相应的,如图2所示,该方法包括如下操作:

s210、获取待处理有向流程图。

s220、计算待处理有向流程图中节点的节点度关联信息。

其中,节点度关联信息可以是与待处理有向流程图中节点的有向边关联的信息。可选的,节点度关联信息可以包括节点入度和/或节点出度。节点入度可以是有向边指向节点的数量。节点出度可以是有向边由节点指出的数量。

在本发明实施例中,在得到待处理有向流程图之后,可以对待处理有向流程图中节点进行解析,根据节点的有向边计算节点的节点度关联信息。

s230、根据节点度关联信息和全局节点构建原始节点集合。

其中,全局节点可以是待处理有向流程图的全部节点。原始节点集合可以是用于存储待处理有向流程图的全局节点,以及节点的节点度关联信息的集合。

相应的,可以将全局节点以及全局节点对应的各节点度关联信息存储于原始节点集合。

示例性的,假设待处理有向流程图包括两个节点,分别为节点1和节点2,有向边以节点1为起点,以节点2为终点,方向由节点1指向节点2,则原始节点集合可以存储节点1、节点2、节点1的节点入度、节点1的节点出度、节点2的节点入度以及节点2的节点出度。其中,节点1的节点入度为0,节点1的节点出度为1,节点2的节点入度为1,节点2的节点出度为0。

s240、确定当前分层节点集合。

其中,当前分层节点集合可以是当前需要处理的分层节点集合。

在本发明实施例中,可以根据原始节点集合按照顺序依次确定每个分层节点集合。在初始状态下,当前分层节点集合为空,节点数量为0。

s250、从原始节点集合中筛选当前分层节点。

其中,当前分层节点可以是需要存储于当前分层节点集合的节点。当前分层节点的节点入度为第一设定值或第二设定值,当当前分层节点的节点入度为第二设定值时,当前分层节点为有向环图起始节点。第一设定值可以是预先设定的节点入度,用于确定有向无环图的起始节点。第二设定值可以是预先设定的节点入度,用于确定有向环图的起始节点。示例性的,第一设定值可以为0。第二设定值可以为1、2或3等,本发明实施例并不对第一设定值和第二设定值的具体取值进行限定。

在本发明实施例中,可以遍历当前原始节点集合中的节点,将当前原始节点集合中节点入度为第一设定值的节点筛选出来,作为当前分层节点。如果当前原始节点集合中节点入度不存在第一设定值,则将节点入度为第二设定值的节点筛选出来,作为当前分层节点。也即,当前分层节点集合可以仅包括节点入度为第一设定值的节点,也可以仅包括节点入度为第二设定值的节点。

s260、将当前分层节点存储于当前分层节点集合。

在本发明实施例中,在得到当前分层节点之后,可以将当前分层节点存储于具有当前分层标识的空集合中。

在本发明的一个可选实施例中,在将当前分层节点存储于当前分层节点集合之后,还可以包括:从原始节点集合中删除当前分层节点;确定原始节点集合中当前分层节点关联的下层节点;更新原始节点集合中下层节点的节点度关联信息。

其中,下层节点可以是当前分层节点通过有向边连接的下级节点。

在本发明实施例中,在将当前分层节点存储于当前分层节点集合之后,可以将当前分层节点从原始节点集合中删除,得到更新后的原始节点集合,并从更新后的原始节点集合中确定与当前分层节点关联的下层节点。进一步的,可以根据更新后的原始节点集合中各节点的有向边,更新原始节点集合中下层节点的节点度关联信息。

在本发明的一个可选实施例中,更新原始节点集合中下层节点的节点度关联信息,可以包括:将下层节点的节点入度修改为目标节点入度。

其中,目标节点入度可以是下层节点更新后的节点入度,目标节点入度可以包括第一设定值或第二设定值。

在本发明实施例中,可以根据删除当前分层节点的原始节点集合中各节点的有向边,确定下层节点的入度,也即下层节点的入度做减一处理,以实现将下层节点的节点入度修改为第一设定值或第二设定值。

在本发明的一个可选实施例中,若当前分层节点的节点入度为第二设定值,则从原始节点集合中筛选当前分层节点,可以包括:根据分层节点集合中的节点确定节点间的目标有向边;根据目标有向边确定有向边关联节点;根据有向边关联节点和原始节点集合筛选当前分层节点。

其中,目标有向边可以是分层节点集合中的节点与其他分层节点集合中节点相连的有向边,也即分层节点集合中的节点相关的有向边。有向边关联节点可以是目标有向边的起始节点以及终止节点。

在本发明实施例中,如果当前原始节点集合中节点入度不存在第一设定值,则可以首先确定分层节点集合中的节点,并搜索以分层节点集合中的节点为起点和/或终点的有向边,从而可以将搜索结果作为目标有向边。在得到目标有向边之后,可以进一步确定与目标有向边对应的有向边关联节点,最终可以将当前原始节点集合和有向边关联节点重复的节点作为当前分层节点。

在一个具体的例子中,如果当前原始节点集合中节点入度不存在第一设定值,已经得到的分层节点集合中包括的节点分别为节点1、节点2以及节点3,删除节点1、节点2以及节点3后的原始节点集合包括节点4和节点5。为了表示方便用v1表示节点1,v2表示节点2,以此类推。假设与分层节点集合中的节点构成的有向边包括v1至v2,v3至v2以及v2至v4,则目标有向边包括v1至v2,v3至v2以及v2至v4,进一步得到构成目标有向边的有向边关联节点v1、v2、v3以及v4,而当前原始节点集合与有向边关联节点重复出现的节点为v4,则将v4从原始节点集合中筛选出来作为当前分层节点。

s270、确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。

本实施例的技术方案,通过获取待处理有向流程图,并计算待处理有向流程图中节点的节点度关联信息,进一步根据节点度关联信息和全局节点构建原始节点集合。在得到原始节点集合之后,可以确定当前分层节点集合,并从原始节点集合中筛选当前分层节点,从而将当前分层节点存储于当前分层节点集合,进一步确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。由于节点坐标可以依据拓扑元素的排序需求设置,从而有效约束每个节点的位置。因此,根据节点坐标对对待处理有向流程图的拓扑元素重新进行排序可以实现拓扑元素的按需排序,以使重新排序的拓扑元素更具直观性和美观性,解决了现有流程图排序方法引起的流程图拓扑元素排序效果差的问题,完善了流程图中拓扑元素的排序效果。

实施例三

图3是本发明实施例三提供的一种流程图排序方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了根据基准节点间横向间距、基准节点间纵向间距、分层节点集合的生成顺序、基准纵坐标以及基准横坐标确定节点坐标的多种可选的实施方案,相应的,如图3所示,该方法包括如下操作:

s310、获取待处理有向流程图。

s320、根据待处理有向流程图的拓扑元素确定至少一个分层节点集合。

s330、确定基准节点间横向间距和基准节点间纵向间距。

其中,基准节点间横向间距可以是预先设定的节点间的横向间距。基准节点间纵向间距可以是预先设定的节点间的纵向间距,基准节点间横向间距和基准节点间纵向间距的数值可以根据实际需求设定,本发明实施例并不对基准节点间横向间距和基准节点间纵向间距的具体数值进行限定。

在本发明实施例中,可以根据实际需求确定基准节点间横向间距和基准节点间纵向间距。

s340、从分层节点集合中筛选目标分层节点集合。

其中,目标分层节点集合可以是能够确定待处理有向流程图重新排序的起始节点横坐标的分层节点集合。

在本发明实施例中,在确定了基准节点间横向间距和基准节点间纵向间距之后,可以对分层节点集合进行筛选处理,得到目标分层节点集合。

s350、确定目标分层节点集合的中心点的坐标值,并将中心点的坐标值作为基准横坐标和基准纵坐标。

其中,基准横坐标可以是随机指定或按照排序策略设置的横坐标。基准纵坐标可以是随机指定或按照排序策略设置的纵坐标。基准横坐标可以用于确定各分层节点集合中节点的横坐标。基准纵坐标可以用于确定各分层节点集合中节点的纵坐标。

在本发明实施例中,在确定分层节点集合中节点的节点坐标之前,可以首先在放置重新排序的有向流程图的页面中选取一点作为坐标原点,并建立该坐标原点的坐标系。例如,可以以页面的中心作为原点,以页面的水平中垂线和竖直中垂线分别为横坐标轴和纵坐标轴建立坐标系。在建立完坐标系之后,可以进一步在建立的坐标系中以随机指定或按照排序策略的形式确定目标分层节点集合的中心点的坐标值,并将中心点的横坐标作为基准横坐标,中心点的纵坐标作为基准纵坐标。

在本发明的一个可选实施例中,从分层节点集合中筛选目标分层节点集合,可以包括:根据各分层节点集合包括的分层节点的数量筛选目标分层节点集合;确定目标分层节点集合的中心点的坐标值,可以包括:根据目标分层节点的数量和基准节点间横向间距确定目标分层节点集合的目标集合宽度;根据目标集合宽度确定目标分层节点集合的中心点;确定中心点的预置横坐标作为基准横坐标,并确定中心点的预置纵坐标作为基准纵坐标。

其中,目标分层节点可以是目标分层节点集合中的节点。目标集合宽度可以是目标分层节点集合中全部节点所需占据的最大水平宽度。预置横坐标可以是目标分层节点集合的中心的横坐标。预置纵坐标可以是目标分层节点集合的中心的纵坐标。分层节点可以是分层节点集合中的节点。

在本发明实施例中,可以首先确定各分层节点集合中分层节点的数量,并将分层节点的数量最大的分层节点集合筛选出来作为目标分层节点集合。在得到目标分层节点集合之后,首先可以根据目标分层节点的数量确定目标分层节点的间隔数,并计算间隔数与基准节点间横向间距之间的乘积,再将计算得到的乘积数值作为目标集合宽度。在得到目标集合宽度之后,可以将目标集合宽度二分之一处的位置作为目标分层节点集合的中心点,进一步将在建立的坐标系中随意指定的,或按照排序策略确定的点的横坐标作为中心点的预置横坐标,并将确定的点的纵坐标作为中心点的预置纵坐标,进而将预置横坐标作为目标分层节点集合的基准横坐标,预置纵坐标作为目标分层节点集合的基准纵坐标。

s360、按照分层节点集合的生成顺序,根据基准纵坐标和基准节点间纵向间距依次确定各待处理分层节点集合中各待处理分层节点的待处理纵坐标。

其中,待处理分层节点集合可以是需要确定节点坐标的分层节点集合。待处理分层节点可以是待处理分层节点集合中的节点。待处理纵坐标可以是待处理分层节点的纵坐标。

在本发明实施例中,在得到基准横坐标和基准纵坐标之后,在基准节点间纵向间距包括基准节点高度的情况下,可以进一步按照分层节点集合的生成顺序,根据基准纵坐标以及基准节点间纵向间距的倍数依次计算待处理分层节点集合中待处理分层节点的待处理纵坐标。在基准节点间纵向间距不包括基准节点高度的情况下,可以进一步计算基准节点高度与基准节点间纵向间距的和值,按照分层节点集合的生成顺序,根据基准纵坐标以及计算得到的和值的倍数依次计算待处理分层节点集合中待处理分层节点的待处理纵坐标。其中,基准节点高度可以是预先设定的节点的竖直高度,可以为0,也可以为大于0的某一具体数值。

如图4所示,基准节点间纵向间距包括基准节点高度,可以理解为:纵向方向上两个相邻节点的中心点之间的间距为基准节点间纵向间距,此时基准节点间纵向间距的数值需要大于基准节点高度的数值,以避免不同层次的节点之间出现重叠现象。基准节点间纵向间距不包括基准节点高度,可以理解为:在纵向方向上,处于上方位置的节点的下顶点与相邻的处于下方位置的节点的上顶点之间的间距为基准节点间纵向间距。基准节点间纵向间距不包括基准节点高度的情况会增加节点坐标计算复杂度,因此,优选的,基准节点间纵向间距可以为纵向方向上两个相邻节点的中心点之间的间距。在后续的实施例中,示例性的,所描述的基准节点间纵向间距均为纵向方向上两个相邻节点的中心点之间的间距。

可选的,在将目标分层节点集合的中心点的坐标值作为基准横坐标和基准纵坐标之后,可以根据分层节点集合的生成顺序以及基准纵坐标,确定第一个生成的分层节点集合中节点的纵坐标,并按照分层节点的生成顺序,根据第一个生成的分层节点集合中节点的纵坐标,依次向下计算各分层节点集合中节点的纵坐标。

s370、根据各待处理分层节点集合包括的分层节点、基准横坐标以及基准节点间横向间距确定各待处理分层节点集合中各待处理分层节点的待处理横坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。

其中,待处理横坐标可以是待处理分层节点的横坐标。

在本发明实施例中,在得到各待处理分层节点集合中各待处理分层节点的待处理纵坐标之后,可以首先确定待处理分层节点集合包括分层节点的数量的奇偶性,进而根据分层节点的数量的奇偶性、基准横坐标以及基准节点间横向间距计算各待处理分层节点集合中各待处理分层节点的待处理横坐标。

在本发明的一个可选实施例中,确定分层节点集合中节点的节点坐标,可以包括:确定基准节点间横向间距和基准节点间纵向间距;根据首位分层节点的坐标值确定基准横坐标和基准纵坐标;按照分层节点集合的生成顺序,根据基准纵坐标和基准节点间纵向间距依次确定各待处理分层节点集合中各待处理分层节点的待处理纵坐标;根据各待处理分层节点集合包括的分层节点、基准横坐标以及基准节点间横向间距确定各待处理分层节点集合中各待处理分层节点的待处理横坐标。

其中,首位分层节点可以是待处理有向流程图中节点入度为零的,并首先进行重新排序的节点,也即有向流程图的起始节点,其数量可以是一个或多个,本发明实施例并不对首位分层节点的数量进行限定。

在本发明实施例中,可以根据实际需求确定基准节点间横向间距和基准节点间纵向间距,进而在建立的坐标系中以随机指定或按照排序策略的方式确定首位分层节点的坐标值,进一步根据首位分层节点的坐标值确定基准横坐标和基准纵坐标。示例性的,当首位分层节点的数量为1个时,可以直接将首位分层节点的坐标值中的横坐标作为基准横坐标,并将首位分层节点的坐标值中的纵坐标作为基准纵坐标。当首位分层节点的数量为多个时,可以将各首位分层节点所在的节点集合的中心点的横坐标作为基准横坐标,并将该中心点的坐标值中的纵坐标作为基准纵坐标。在根据首位分层节点确定基准纵坐标以及基准横坐标之后,按照分层节点集合的生成顺序,根据基准纵坐标以及基准节点间纵向间距的倍数依次计算待处理分层节点集合中待处理分层节点的待处理纵坐标。在得到各待处理分层节点集合中各待处理分层节点的待处理纵坐标之后,可以首先确定待处理分层节点集合包括分层节点的数量的奇偶性,进而根据分层节点的数量的奇偶性、基准横坐标以及基准节点间横向间距计算各待处理分层节点集合中各待处理分层节点的待处理横坐标。

示例性的,可以首先计算目标分层节点集合的目标集合宽度,进而将目标集合宽度的二分之一与偏移距离的和值作为首位分层节点的基准横坐标,并将基准节点间纵向间距的数值作为首位分层节点的基准纵坐标。其中,偏移距离可以是按照拓扑元素排序需求设定的距离数值。偏移距离的具体数值可以是大于等于零的常数。

在本发明的一个可选实施例中,根据各待处理分层节点集合包括的分层节点、基准横坐标以及基准节点间横向间距确定各待处理分层节点集合中各待处理分层节点的待处理横坐标,可以包括:在确定分层节点的数量为奇数的情况下,将待处理分层节点集合中的中间分层节点确定为待处理分层节点集合的分层基准节点;其中,分层基准节点的横坐标与基准横坐标相同;根据基准节点间横向间距、分层基准节点的横坐标以及各待处理分层节点的集合添加顺序依次确定各待处理分层节点的待处理横坐标。

其中,中间分层节点可以是当待处理分层节点集合中分层节点的数量为奇数时,位于待处理分层节点集合中间位置的节点。示例性的,当待处理分层节点集合中包括5个待处理分层节点,则待处理分层节点集合中从左至右的第三个待处理分层节点为中间分层节点。分层基准节点可以用于确定待处理分层节点的待处理横坐标。集合添加顺序可以是待处理分层节点添加至同一分层节点集合的顺序。

在本发明实施例中,当待处理分层节点集合中分层节点的数量为奇数时,可以通过分层节点的数量确定待处理分层节点集合中的中间分层节点,并将中间分层节点作为待处理分层节点集合的分层基准节点。分层基准节点的横坐标可以与基准横坐标相同。待处理分层节点的待处理横坐标的确定过程具体可以是:首先可以计算待处理分层节点与中间分层节点添加顺序的差值,然后计算所得差值与基准节点间横向间距的乘积,进一步将分层基准节点的横坐标与得到的乘积进行求和计算,并将得到的和值作为待处理分层节点的待处理横坐标。

具体的,在基准节点间横向间距包括基准节点宽度的情况下,可以进一步按照分层节点集合中各节点的集合添加顺序、基准横坐标以及基准节点间横向间距的倍数依次计算待处理分层节点集合中待处理分层节点的待处理横坐标。在基准节点间横向间距不包括基准节点宽度的情况下,可以进一步计算基准节点宽度与基准节点间横向间距的和值,按照分层节点集合的集合添加顺序,根据基准横坐标以及计算得到的和值的倍数依次计算待处理分层节点集合中待处理分层节点的待处理横坐标。其中,基准节点宽度可以是预先设定的节点的水平宽度,可以为0,也可以为大于0的某一具体数值。

如图5所示,基准节点间横向间距包括基准节点宽度,可以理解为:水平方向上两个相邻节点的中心点之间的间距为基准节点间横向间距,此时基准节点间横向间距的数值需要大于基准节点宽度的数值,以避免同一层次的节点之间出现重叠现象。基准节点间横向间距不包括基准节点宽度,可以理解为:在水平方向上,处于左侧位置的节点的右顶点与相邻的处于右侧位置的节点的左顶点之间的间距为基准节点间横向间距。基准节点间横向间距不包括基准节点宽度的情况会增加节点坐标计算复杂度,因此,优选的,基准节点间横向间距可以为水平方向上两个相邻节点的中心点之间的间距。在后续的实施例中,示例性的,所描述的基准节点间横向间距均为水平方向上两个相邻节点的中心点之间的间距。

在本发明的一个可选实施例中,根据各待处理分层节点集合包括的分层节点、基准横坐标以及基准节点间横向间距确定各待处理分层节点集合中各待处理分层节点的待处理横坐标,可以包括:在确定分层节点的数量为偶数的情况下,确定待处理分层节点集合的分层基准位置;其中,分层基准位置的横坐标可以与基准横坐标相同;根据基准节点间横向间距、分层基准位置的横坐标以及各待处理分层节点的集合添加顺序依次确定各待处理分层节点的待处理横坐标。

其中,分层基准位置可以是当待处理分层节点集合中的待处理分层节点为偶数时,待处理分层节点集合的中心点的位置。待处理分层节点集合的中心点位置横坐标的确定方法与目标分层节点集合的中心点的横坐标确定方法相同。

在本发明实施例中,当待处理分层节点集合中待处理分层节点的数量为偶数时,可以将待处理分层节点集合的分层基准位置的横坐标设置为基准横坐标,进而根据分层基准位置的基准横坐标以及基准节点间横向间距计算任意一个分层节点的横坐标,并根据计算所得的节点坐标、基准节点间横向间距以及待处理分层节点的集合添加顺序计算各待处理分层节点的待处理横坐标。

示例性的,假设某一待处理分层集合中包括4个待处理分层节点,如图6所示,d代表基准节点间横向间距,可以将基准横坐标与基准节点间横向间距的二分之一的差值作为节点2的横坐标。节点2的横坐标与基准节点间横向间距的差值作为节点1的横坐标。基准横坐标与基准节点间横向间距的二分之一的和值作为节点3的横坐标。节点3的横坐标与基准节点间横向间距的和值作为节点4的横坐标。

在本发明的一个可选实施例中,根据节点坐标对待处理有向流程图的拓扑元素重新进行排序,可以包括:根据节点坐标确定各节点的更新位置;根据节点坐标以及各节点的更新位置确定各有向边的更新连接方式。

其中,更新位置可以是节点重新排序后的位置。更新连接方式可以是根据节点的更新位置重新确定的节点间的连接方式。

在本发明实施例中,在得到所有节点的节点坐标之后,可以根据节点坐标将各节点排布于自身所属位置,进一步根据节点在排序后的相对位置,以及节点坐标确定节点间有向边的更新连接方式。

在本发明的一个可选实施例中,根据节点坐标以及各节点的更新位置确定各有向边的更新连接方式,可以包括:确定相邻分层节点集合之间的基准节点间纵向间距;根据基准节点间纵向间距和各节点的更新位置确定各有向边的更新连接方式。

其中,相邻分层节点集合可以是生成顺序相邻的分层节点集合。例如,第一个生成的分层节点集合与第二个生成的分层节点集合为相邻分层节点集合。

在本发明实施例中,相邻分层节点集合之间的基准节点间纵向间距也即上文确定的基准节点间纵向间距。在确定基准节点间纵向间距之后,可以根据基准节点间纵向间距以及各节点的更新位置确定各节点之间有向边的更新连接方式。

在本发明的一个可选实施例中,根据基准节点间纵向间距和各节点的更新位置确定各有向边的更新连接方式,可以包括:根据基准节点间纵向间距确定各有向边的转折点的转折点坐标;在相邻分层节点集合中待连接节点的连接点与转折点之间重新建立新的有向边。

其中,连接点可以是有向边与分层节点的连接位置。转折点可以是连接点之间通过直角形式连接时产生转折的点。待连接节点可以是相邻分层节点集合中的需要重新建立有向边连接的节点。

在本发明实施例中,可以首先根据基准节点间纵向间距确定各有向边的转折点的转折点坐标。具体的,可以首先确定相邻分层节点集合中先生成的分层节点集合中分层节点的纵坐标,进一步计算相邻分层节点集合中先生成的分层节点集合中分层节点的纵坐标与基准节点间纵向间距的差值,进而可以将所得的纵坐标与差值之间的任意数值作为转折点纵坐标。如果相邻分层节点集合中后生成的分层节点集合中分层节点数量大于1,则可以将其中一个转折点的横坐标设置为基准横坐标,剩余转折点的横坐标与相邻分层节点集合中后生成的分层节点集合中各分层节点的横坐标相同。如果相邻分层节点集合中后生成的分层节点集合中分层节点数量等于1,则将转折点的横坐标设置为基准横坐标。在得到转折点坐标之后,可以进一步确定待连接节点的连接点的坐标,如果待连接节点为有向边的起始节点,则待连接节点的连接点的纵坐标数值为待连接节点纵坐标与二分之一基准节点高度的差值。如果待连接节点为有向边的终止节点,则待连接节点的连接点的纵坐标数值为待连接节点纵坐标与二分之一基准节点高度的和值。待连接节点的连接点的横坐标与对应的待连接节点的横坐标相同。在得到相邻分层节点集合中待连接节点的连接点的坐标,以及转折点的坐标之后,根据得到的坐标值建立新的有向边。

示例性的,当相邻分层节点集合中后生成的分层节点集合中分层节点数量为奇数时,且相邻分层节点集合中先生成的分层节点集合中分层节点数量也为奇数时,可以将相邻分层节点集合中的两个中间分层节点通过直线连接,其中一个转折点位于该连接直线上。当相邻分层节点集合中后生成的分层节点集合中分层节点数量为偶数时,且相邻分层节点集合中先生成的分层节点集合中分层节点数量也为偶数时,可以首先确定两个横坐标均为基准横坐标的转折点,横坐标为基准横坐标的两转折点的纵坐标,可以是相邻分层节点集合中两个分层节点集合的节点的纵坐标之间的任意两个不同的数值,剩余转折点的横坐标数值与相邻分层节点集合中后生成的分层节点集合中分层节点的横坐标相同。

在本发明的一个可选实施例中,根据基准节点间纵向间距和各节点的更新位置确定各有向边的更新连接方式,可以包括:在确定分层节点集合中的分层节点为有向环图起始节点的情况下,确定有向环图起始节点的目标连接节点,并确定有向环图起始节点和目标连接节点之间的中间分层节点集合;其中,有向环图起始节点与目标连接节点之间存在有向环边;根据各中间分层节点集合的集合宽度筛选目标中间分层节点集合;根据目标中间分层节点集合确定更新有向环边的环边转折点;在有向环图起始节点的连接点、目标连接节点的连接点与环边转折点之间重新建立新的有向环边。

其中,有向环图起始节点可以是有向环图的起始节点。目标连接节点可以是以有向环图起始节点为有向边终点的分层节点。中间分层节点集合可以是有向环图起始节点和目标连接节点之间的分层节点集合。所属的分层节点集合。目标中间分层节点集合可以是有向环图起始节点和目标连接节点之间的集合宽度最大的分层节点集合。集合宽度的计算方法与目标集合宽度的计算方法相同。有向环边可以是由环边转折点、有向环图起始节点的连接点、目标连接节点的连接点以及之间有向边构成。可选的,环边转折点的数量可以为至少两个。

在本发明实施例中,如果当前分层节点集合中存储的节点的节点入度为第二设定值,则分层节点集合中的分层节点为有向环图起始节点。在得到有向环图起始节点之后,可以进一步确定以有向环图起始节点为有向边终点的目标连接点,并确定有向环图起始节点与目标连接点之间存在的中间分层节点集合。在得到中间分层节点集合之后,可以将中间分层节点集合中集合宽度最大的分层节点集合作为目标中间分层节点集合,进一步确定目标中间分层节点集合中节点横坐标最大值或最小值,进而可以将横坐标最大值与目标距离的和值,或将横坐标最小值与目标距离的差值作为环边转折点的横坐标。其中,目标距离可以是大于零的距离数值。一般情况下环边转折点的数量为至少两个。当环边转折点的数量大于两个时,环边转折点之间的有向边不穿过中间分层节点集合中的节点。当环边转折点的数量为一个时,有向环图起始节点的连接点和目标连接节点的连接点分别通过直线与环边转折点连接,构成两条有向边。当环边转折点的数量为两个的情况下,环边转折点的纵坐标可以分别为有向环图起始节点纵坐标和目标连接点纵坐标,进一步可以将有向环图起始节点的连接点、目标连接节点的连接点与环边转折点通过直角形式连接成有向边。

具体的,有向环图起始节点的连接点的横坐标可以通过有向环图起始节点的横坐标与二分之一基准节点宽度的差值,或有向环图起始节点的横坐标与二分之一基准节点宽度的和值确定。目标连接节点的连接点的横坐标可以通过目标连接节点的横坐标与二分之一基准节点宽度的差值,或目标连接节点的横坐标与二分之一基准节点宽度的和值确定。当目标连接节点的连接点位于目标连接节点右侧时,有向环图起始节点的连接点位于有向环图起始节点的右侧。当目标连接节点的连接点位于目标连接节点左侧时,向环图起始节点的连接点位于向环图起始节点的左侧。

相应的,当目标连接节点的连接点位于目标连接节点右侧时,目标连接节点的连接点的横坐标数值为目标连接节点的横坐标数值与二分之一基准节点宽度数值的和值。当目标连接节点的连接点位于目标连接节点左侧时,目标连接节点的连接点的横坐标数值为目标连接节点的横坐标数值与二分之一基准节点宽度数值的差值。有向环图起始节点的连接点位于有向环图起始节点右侧时,有向环图起始节点的连接点的横坐标数值为有向环图起始节点的横坐标数值与二分之一基准节点宽度数值的和值。有向环图起始节点的连接点位于有向环图起始节点左侧时,有向环图起始节点的连接点的横坐标数值为有向环图起始节点的横坐标数值与二分之一基准节点宽度数值的差值。

本实施例的技术方案,通过获取待处理有向流程图,并根据待处理有向流程图的拓扑元素确定至少一个分层节点集合。在得到分层节点集合之后,确定基准节点间横向间距和基准节点间纵向间距,并从分层节点集合中筛选目标分层节点集合,进而确定目标分层节点集合的中心点的坐标值,并将中心点的坐标值作为基准横坐标和基准纵坐标,然后按照分层节点集合的生成顺序,根据基准纵坐标和基准节点间纵向间距依次确定各待处理分层节点集合中各待处理分层节点的待处理纵坐标,以进一步根据各待处理分层节点集合包括的分层节点、基准横坐标以及基准节点间横向间距确定各待处理分层节点集合中各待处理分层节点的待处理横坐标。由于节点坐标可以依据拓扑元素的排序需求设置,从而有效约束每个节点的位置。因此,根据节点坐标对对待处理有向流程图的拓扑元素重新进行排序可以实现拓扑元素的按需排序,以使重新排序的拓扑元素更具直观性和美观性,解决了现有流程图排序方法引起的流程图拓扑元素排序效果差的问题,完善了流程图中拓扑元素的排序效果。

实施例四

作为上述各实施例的可选实施方案,图7为本发明实施例四所提供的一种待处理有向流程图的示意图。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。

如图7所示待处理有向流程图包括10个节点,将这10个节点以及这10个节点入度与节点出度存储于原始节点集合,对原始节点集合中的节点进行循环遍历确定分层节点集合,具体过程如下:

第一次循环遍历:遍历原始节点集合中的节点筛选节点入度为0的节点v1,定义当前分层节点集合以及当前分层节点集合的分层标识,并将节点v1存储于分层标识为1的分层节点集合l1中。从原始节点集合中删除节点v1,并将与v1相连的节点v2以及v3的入度减1,此时v2、v3的入度为0。

第二次循环遍历:遍历当前原始节点集合中的节点筛选节点入度为0的节点v2以及v3,定义当前分层节点集合以及当前分层节点集合的分层标识,并将节点v2以及v3存储于分层标识为2的分层节点集合l2中,从原始节点集合中删除节点v2以及v3,并将与v2以及v3相连的节点v4的入度减1,此时v4的入度为0。

第三次循环遍历:遍历当前原始节点集合中的节点筛选节点入度为0的节点v4,定义当前分层节点集合以及当前分层节点集合的分层标识,并将节点v4存储于分层标识为3的分层节点集合l3中。从原始节点集合中删除节点v4,并将与v4相连的节点v5的入度减1,此时v5的入度为1。

第四次循环遍历:遍历当前原始节点集合中的节点,但是此时当前原始节点集合中节点入度都不为0且当前原始节点集合不为空,可以根据已有的l1、l2以及l3中存储的节点确定所有的有向边分别为v1至v2、v1至v3、v2至v4、v3至v4以及v4至v5。此时有向边包含的节点分别为v1、v2、v3、v4以及v5,当前原始节点集合中仅包括上述节点中的v5,将v5作为有向环图的起始节点。定义当前分层节点集合以及当前分层节点集合的分层标识,并将节点v5存储于分层标识为4的分层节点集合l4中,从当前原始节点集合中删除v5,并把与v5相连的节点v6、v7、v8的节点的入度减1,此时节点v6、v7以及v8的入度为0。

第五次循环遍历:遍历当前原始节点集合中的节点筛选节点入度为0的节点v6、v7以及v8,定义当前分层节点集合以及当前分层节点集合的分层标识,并将节点v6、v7以及v8存储于分层标识为5的分层节点集合l5中,从当前原始节点集合中删除v6、v7以及v8,并把与v6、v7以及v8相连的节点v9的节点的入度减1,此时节点v9的入度为0。

第六次循环遍历:遍历当前原始节点集合中的节点筛选节点入度为0的节点v9,定义当前分层节点集合以及当前分层节点集合的分层标识,并将节点v9存储于分层标识为6的分层节点集合l6中,从当前原始节点集合中删除v9,并把与v9相连的节点v10的节点的入度减1,此时节点v10的入度为0。

第七次循环遍历:遍历当前原始节点集合中的节点筛选节点入度为0的节点v10,定义当前分层节点集合以及当前分层节点集合的分层标识,并将节点v10存储于分层标识为7的分层节点集合l7中,此时当前原始节点集合为空,结束遍历。循环结束后得到的分层节点集合为l1、l2、l3、l4、l5、l6以及l7。

在得到各分层节点集合之后,定义基准节点间横向间距以及基准节点间纵向间距,并计算各分层节点集合的集合宽度,将集合宽度最大的分层节点集合作为目标分层节点集合,进一步可以建立坐标系,在建立坐标系之后可以确定首位分层节点的节点坐标,可以根据如下公式计算首位分层节点的节点坐标:

point_y=space_y;

其中,point_x表示首位分层节点的横坐标,point_y表示首位分层节点的纵坐标,maxx表示目标集合宽度,n表示目标分层节点集合包括的节点数,space_x表示基准节点间横向间距,space_y表示基准节点间纵向间距。

如图8所示,在采用自上而下的拓扑元素排序方式对各节点进行排序时,因为分层节点集合l1中有且仅有一个节点v1,可以将v1的横坐标设置为point_x,v1的纵坐标设置为point_y,进而可以将首位分层节点的坐标设置为基准横坐标以及基准纵坐标。当待处理分层节点集合中节点数目为1时,该分层节点集合中节点的横坐标与基准横坐标相同。当待处理分层节点集合中节点数目为奇数且大于1时,可以首先确定中间分层节点,根据集合添加顺序从中间分层节点开始正向遍历时,节点的横坐标等于上一节点的横坐标与基准节点间横向间距的和值。根据集合添加顺序从中间分层节点开始反向遍历时,节点的横坐标等于上一节点的横坐标与基准节点间横向间距的差值。示例性的,当待处理分层节点集合中的节点数量为奇数,包括的节点分别为v1、v2、v3、v4以及v5。v3为分层节点集合的中间分层节点,v3的横坐标等于基准横坐标,从中间分层节点v3正向遍历分层节点集合时,v4的横坐标数值等于基准横坐标数值、基准节点宽度数值以及基准节点间横向间距数值的和值,v5的横坐标数值等于v4的横坐标数值基准节点宽度以及基准节点间横向间距数值的和值。从中间分成节点v3反向遍历分层节点集合时,v2的横坐标数值等于基准横坐标数值,与基准节点宽度数值以及基准节点间横向间距数值的和值的差值,v1的横坐标数值等于v2横坐标数值,与基准节点宽度数值以及基准节点间横向间距数值的和值的差值。

当待处理分层节点集合中分层节点数目为偶数时,可以确定位于中间位置的两个节点,并从中间的两个节点开始进行正向和反向遍历。示例性的,当待处理分层节点集合中包括的节点分别为v1、v2、v3、v4、v5以及v6,则位于中间位置的节点分别为v3和v4。令v3的横坐标数值等于基准横坐标数值,与基准节点宽度数值以及基准节点间横向间距的二分之一的和值的差值。v2的横坐标数值等于v3的横坐标数值,与基准节点宽度数值以及基准节点间横向间距数值的和值的差值。v1的横坐标数值等于v2的横坐标数值,与基准节点宽度数值以及基准节点间横向间距数值的和值的差值。v4的横坐标数值等于基准横坐标数值,与基准节点宽度数值以及基准节点间横向间距二分之一的和值。v5的横坐标数值等于v4的横坐标数值、基准节点宽度数值以及基准节点间横向间距数值的和值。v6的横坐标数值等于v5的横坐标数值、基准节点宽度数值以及基准节点间横向间距数值的和值。

在得到各节点横坐标之后,可以进一步根据v1的基准纵坐标以及分层节点集合的生成顺序计算各节点的纵坐标,且位于同一分层节点集合的节点的纵坐标相同,可选的,可以根据如下公式计算各节点纵坐标:

maxy=point_y-(space_y+b)×k;

其中,maxy表示节点纵坐标,k表示待计算节点所属分层节点集合的生成顺序与1的差值,b表示基准节点高度。

在根据各节点坐标对节点进行排序后,可以根据相邻分层节点集合中节点的位置(垂直、左下以及右下)确定转折点的坐标。如图8所示,v1和v2之间的转折点包括p2和p3,p2和p3的坐标可以通过如下公式进行确定:

p2_x=point_x;

p3_x=target_x;

其中,p2_x表示p2的横坐标,p2_y表示p2的纵坐标,p3_x表示p3的横坐标,p3_y表示p3的纵坐标,target_x表示v2的横坐标,target_y表示v2的纵坐标。在得到p2和p3的坐标之后,可以从v1到p2建立有向边,进而从p2到p3建立有向边,再从p3到v2建立有向边。

本实施例的技术方案,通过获取待处理有向流程图,并计算待处理有向流程图中节点的节点度关联信息,进一步根据节点度关联信息和全局节点构建原始节点集合。在得到原始节点集合之后,可以确定当前分层节点集合,并从原始节点集合中筛选当前分层节点,从而将当前分层节点存储于当前分层节点集合,进一步确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。由于节点坐标可以依据拓扑元素的排序需求设置,从而有效约束每个节点的位置。因此,根据节点坐标对对待处理有向流程图的拓扑元素重新进行排序可以实现拓扑元素的按需排序,以使重新排序的拓扑元素更具直观性和美观性,解决了现有流程图排序方法引起的流程图拓扑元素排序效果差的问题,完善了流程图中拓扑元素的排序效果。

需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本发明的保护范围。

实施例五

图9是本发明实施例五提供的一种流程图排序装置的示意图,如图9所示,所述装置包括:待处理有向流程图获取模块410、分层节点集合确定模块420以及拓扑元素排序模块430,其中:

待处理有向流程图获取模块410,用于获取待处理有向流程图;其中,待处理有向流程图由拓扑元素构成,拓扑元素包括节点以及有向边;

分层节点集合确定模块420,用于根据待处理有向流程图的拓扑元素确定至少一个分层节点集合;其中,分层节点集合包括至少一个节点;

拓扑元素排序模块430,用于确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。

本实施例的技术方案,通过获取由节点以及有向边等拓扑元素构成的待处理有向流程图,以根据待处理有向流程图的拓扑元素确定至少一个包括至少一个节点的分层节点集合,进一步确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。由于节点坐标可以依据拓扑元素的排序需求设置,从而有效约束每个节点的位置。因此,根据节点坐标对对待处理有向流程图的拓扑元素重新进行排序可以实现拓扑元素的按需排序,以使重新排序的拓扑元素更具直观性和美观性,解决了现有流程图排序方法引起的流程图拓扑元素排序效果差的问题,完善了流程图中拓扑元素的排序效果。

可选的,流程图排序装置,还可以包括原始节点集合创建模块,用于计算所述待处理有向流程图中节点的节点度关联信息;其中,所述节点度关联信息包括节点入度和/或节点出度;根据所述节点度关联信息和全局节点构建原始节点集合。

可选的,分层节点集合确定模块420,具体用于:确定当前分层节点集合;

从所述原始节点集合中筛选当前分层节点;其中,所述当前分层节点的节点入度为第一设定值或第二设定值,当所述当前分层节点的节点入度为所述第二设定值时,所述当前分层节点为有向环图起始节点;将所述当前分层节点存储于所述当前分层节点集合。

可选的,若所述当前分层节点的节点入度为第二设定值,分层节点集合确定模块420,具体用于:根据所述分层节点集合中的节点确定节点间的目标有向边;根据所述目标有向边确定有向边关联节点;根据所述有向边关联节点和所述原始节点集合筛选所述当前分层节点。

可选的,流程图排序装置,还可以包括下层节点的节点度关联信息更新模块,用于从所述原始节点集合中删除所述当前分层节点;确定所述原始节点集合中所述当前分层节点关联的下层节点;更新所述原始节点集合中所述下层节点的节点度关联信息。

可选的,下层节点的节点度关联信息更新模块,具体用于:将所述下层节点的节点入度修改为目标节点入度。

可选的,拓扑元素排序模块430,具体用于:确定基准节点间横向间距和基准节点间纵向间距;从所述分层节点集合中筛选目标分层节点集合;确定目标分层节点集合的中心点的坐标值作为基准横坐标和基准纵坐标;按照所述分层节点集合的生成顺序,根据所述基准纵坐标、基准节点高度和所述基准节点间纵向间距依次确定各待处理分层节点集合中各待处理分层节点的待处理纵坐标;根据各所述待处理分层节点集合包括的分层节点、所述基准横坐标以及所述基准节点间横向间距确定各所述待处理分层节点集合中各所述待处理分层节点的待处理横坐标。

可选的,拓扑元素排序模块430,具体用于:根据各所述分层节点集合包括的分层节点的数量筛选所述目标分层节点集合;根据所述目标分层节点的数量和所述基准节点间横向间距确定所述目标分层节点集合的目标集合宽度;根据所述目标集合宽度确定所述目标分层节点集合的中心点;确定所述中心点的预置横坐标作为所述基准横坐标,并确定所述中心点的预置纵坐标作为所述基准纵坐标。

可选的,拓扑元素排序模块430,具体用于:确定基准节点间横向间距和基准节点间纵向间距;根据首位分层节点的坐标值确定基准横坐标和基准纵坐标;按照所述分层节点集合的生成顺序,根据所述基准纵坐标和所述基准节点间纵向间距依次确定各待处理分层节点集合中各待处理分层节点的待处理纵坐标;根据各所述待处理分层节点集合包括的分层节点、所述基准横坐标以及所述基准节点间横向间距确定各所述待处理分层节点集合中各所述待处理分层节点的待处理横坐标。

可选的,拓扑元素排序模块430,具体用于:在确定所述分层节点的数量为奇数的情况下,将所述待处理分层节点集合中的中间分层节点确定为所述待处理分层节点集合的分层基准节点;其中,所述分层基准节点的横坐标与所述基准横坐标相同;根据所述基准节点间横向间距、所述分层基准节点的横坐标以及各所述待处理分层节点的集合添加顺序依次确定各所述待处理分层节点的待处理横坐标。

可选的,拓扑元素排序模块430,具体用于:在确定所述分层节点的数量为偶数的情况下确定所述待处理分层节点集合的分层基准位置;其中,所述分层基准位置的横坐标与所述基准横坐标相同;根据所述基准节点间横向间距、所述分层基准位置的横坐标以及各所述待处理分层节点的集合添加顺序依次确定各所述待处理分层节点的待处理横坐标。

可选的,拓扑元素排序模块430,具体用于:根据所述节点坐标确定各所述节点的更新位置;根据所述节点坐标以及各所述节点的更新位置确定各所述有向边的更新连接方式。

可选的,拓扑元素排序模块430,具体用于:确定相邻分层节点集合之间的基准节点间纵向间距;根据所述基准节点间纵向间距和各所述节点的更新位置确定各所述有向边的更新连接方式。

可选的,拓扑元素排序模块430,具体用于:根据所述基准节点间纵向间距确定各所述有向边的转折点的转折点坐标;在相邻分层节点集合中待连接节点的连接点与所述转折点之间重新建立新的有向边。

可选的,拓扑元素排序模块430,具体用于:在确定所述分层节点集合中的分层节点为有向环图起始节点的情况下,确定所述有向环图起始节点的目标连接节点,并确定所述有向环图起始节点和所述目标连接节点之间的中间分层节点集合;其中,所述有向环图起始节点与所述目标连接节点之间存在有向环边;根据各所述中间分层节点集合的集合宽度筛选目标中间分层节点集合;根据所述目标中间分层节点集合的集合宽度确定更新有向环边的环边转折点;在所述有向环图起始节点的连接点、所述目标连接节点的连接点与所述环边转折点之间重新建立新的有向环边。

上述流程图排序装置可执行本发明任意实施例所提供的流程图排序方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的流程图排序方法。

由于上述所介绍的流程图排序装置为可以执行本发明实施例中的流程图排序方法的装置,故而基于本发明实施例中所介绍的流程图排序方法,本领域所属技术人员能够了解本实施例的流程图排序装置的具体实施方式以及其各种变化形式,所以在此对于该流程图排序装置如何实现本发明实施例中的流程图排序方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中流程图排序方法所采用的装置,都属于本申请所欲保护的范围。

实施例六

图10为本发明实施例六提供的一种电子设备的结构示意图。图10示出了适于用来实现本发明实施方式的电子设备512的框图。图10显示的电子设备512仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。电子设备512例如可以是计算机设备或服务器设备等。

如图10所示,电子设备512以通用计算设备的形式表现。电子设备512的组件可以包括但不限于:一个或者多个处理器516,存储装置528,连接不同系统组件(包括存储装置528和处理器516)的总线518。

总线518表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrystandardarchitecture,isa)总线,微通道体系结构(microchannelarchitecture,mca)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation,vesa)局域总线以及外围组件互连(peripheralcomponentinterconnect,pci)总线。

电子设备512典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备512访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储装置528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory,ram)530和/或高速缓存存储器532。电子设备512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统534可以用于读写不可移动的、非易失性磁介质(图10未显示,通常称为“硬盘驱动器”)。尽管图10中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(compactdisc-readonlymemory,cd-rom)、数字视盘(digitalvideodisc-readonlymemory,dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。存储装置528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块526的程序536,可以存储在例如存储装置528中,这样的程序模块526包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块526通常执行本发明所描述的实施例中的功能和/或方法。

电子设备512也可以与一个或多个外部设备514(例如键盘、指向设备、摄像头、显示器524等)通信,还可与一个或者多个使得用户能与该电子设备512交互的设备通信,和/或与使得该电子设备512能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(input/output,i/o)接口522进行。并且,电子设备512还可以通过网络适配器520与一个或者多个网络(例如局域网(localareanetwork,lan),广域网wideareanetwork,wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器520通过总线518与电子设备512的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备512使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(redundantarraysofindependentdisks,raid)系统、磁带驱动器以及数据备份存储系统等。

处理器516通过运行存储在存储装置528中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的流程图排序方法,包括:获取待处理有向流程图;其中,待处理有向流程图由拓扑元素构成,拓扑元素包括节点以及有向边;根据待处理有向流程图的拓扑元素确定至少一个分层节点集合;其中,分层节点集合包括至少一个节点;确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。

本实施例的技术方案,通过获取由节点以及有向边等拓扑元素构成的待处理有向流程图,以根据待处理有向流程图的拓扑元素确定至少一个包括至少一个节点的分层节点集合,进一步确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。由于节点坐标可以依据拓扑元素的排序需求设置,从而有效约束每个节点的位置。因此,根据节点坐标对对待处理有向流程图的拓扑元素重新进行排序可以实现拓扑元素的按需排序,以使重新排序的拓扑元素更具直观性和美观性,解决了现有流程图排序方法引起的流程图拓扑元素排序效果差的问题,完善了流程图中拓扑元素的排序效果。

实施例七

本发明实施例七还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的流程图排序方法,包括:获取待处理有向流程图;其中,待处理有向流程图由拓扑元素构成,拓扑元素包括节点以及有向边;根据待处理有向流程图的拓扑元素确定至少一个分层节点集合;其中,分层节点集合包括至少一个节点;确定分层节点集合中节点的节点坐标,并根据节点坐标对待处理有向流程图的拓扑元素重新进行排序。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(readonlymemory,rom)、可擦式可编程只读存储器((erasableprogrammablereadonlymemory,eprom)或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1