CN101697211A - 一种结点循环嵌套的检测方法、装置及系统 - Google Patents
一种结点循环嵌套的检测方法、装置及系统 Download PDFInfo
- Publication number
- CN101697211A CN101697211A CN200910110221A CN200910110221A CN101697211A CN 101697211 A CN101697211 A CN 101697211A CN 200910110221 A CN200910110221 A CN 200910110221A CN 200910110221 A CN200910110221 A CN 200910110221A CN 101697211 A CN101697211 A CN 101697211A
- Authority
- CN
- China
- Prior art keywords
- information
- node
- relation
- loop
- direct relation
- 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
技术领域
本发明属于管理领域,尤其涉及一种结点循环嵌套的检测方法、装置及系统。
背景技术
结点是一个独立的可与其它结点存在关系的物体的抽象,例如一个物料、一个物料清单(Bill of Material,BOM)、路由器等。一个物料与其它物料可能存在替代关系;BOM记载构成产品的各物料及其需求数量、相互之间的组成结构关系,一个BOM可能与其它的BOM存在层级的关系、一个路由器与其他路由器之间存在数据转发关系等。
有直接关系的两个结点,称为直接关系结点。例如可以用物料B来替代物料A,而物料C可以用来替代物料B,因而物料A与物料B,物料B与物料C是互为直接关系结点,而物料A与物料C就不是互为直接关系结点,而是互为间接关系结点。
两个直接关系结点A、B,如果从结点A向结点B发生关系,则称A为直接关系开始结点,B为直接关系结束结点。例如,物料B替代物料A,替代的关系是用B向A发生,所以称B为直接关系开始结点,A为直接关系结束结点。
一个结点通过直接关系结点的关系传递,最终与至少一个其它结点即有间接关系,又有直接关系,则所有的这些结点之间的关系就是循环嵌套关系。例如,物料B可以用来替代物料A,物料C可以用来替代物料B,而物料A又可以用来替代物料C,而他们的关系为:A->C->B->A,即C与A即有直接关系,又有间接关系。因而,A、B、C、D这些结点间形成循环嵌套关系。
现有物料管理系统用结点表示其管理的各物料,一般在数据库中记录有关系的两个结点,如表1所示:
物料 | 替代物料 |
A | B |
B | C |
C | D |
表1
有时需要知道结点间是否存在循环嵌套关系,现有结点循环嵌套的检测方法根据结点间的直接关系信息,先将结点间的间接关系变为直接关系,例如,A与C之间存在间接关系C->B、B->A,则增加A与C之间的直接关系C->A,然后判断最终如果出现A->A这样的自身关系,则得知A、B、C间存在循环嵌套。但是,如果涉及到的节点较多,则比较耗时、处理性能不高。
综上所述,现有结点循环嵌套的检测方法处理过程繁琐、效率低、耗时,尤其不适用于涉及到的节点多的情况。
发明内容
本发明实施例的目的在于旨在解决现有技术存在的问题,提供一种结点循环嵌套的检测方法,处理过程简单、效率高、省时。
本发明实施例是这样实现的,一种结点循环嵌套的检测方法,所述方法包括下述步骤:
获取结点关系信息,所述结点关系信息由至少两条直接关系信息组成;
循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息;
得到剩余的结点关系信息。
本发明实施例的另一目的在于提供一种结点循环嵌套检测装置,所述装置包括:
信息获取单元,用于获取结点关系信息,所述结点关系信息由至少两条直接关系信息组成;
信息修改单元,用于根据所述信息获取单元获取到的结点关系信息,循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息;以及
结果获取单元,用于得到所述信息修改单元处理后剩余的结点关系信息。
本发明实施例的另一目的在于提供一种包含上述结点循环嵌套检测装置的系统。
在本发明实施例中,循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息,实现了一种结点循环嵌套的检测方法,处理过程简单、效率高、省时,并且适用于涉及到的结点数量大的情况。
附图说明
图1是本发明实施例提供的结点循环嵌套的检测方法的实现流程图;
图2是本发明实施例提供的存储结点关系信息的数据库表的示意图;
图3是本发明实施例提供的存储剩余结点关系信息的数据库表的示意图;
图4本发明实施例提供的结点循环嵌套检测装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息。
图1示出了本发明实施例提供的结点循环嵌套的检测方法的实现流程,详述如下:
在步骤S101中,获取结点关系信息,该结点关系信息由至少两条直接关系信息组成;
在步骤S102中,循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息;
在步骤S103中,得到剩余的结点关系信息。
其中,获取到的结点关系信息可以是其他系统、终端、服务器、数据库等输出的,也可以是由用户等输入的;该结点关系信息可以由至少两条直接关系信息组成,例如:由A->B、B->C、C->D、A->X等组成。直接关系信息表示有直接关系的两结点的关系,记载哪个结点作为直接关系开始结点和哪个结点作为直接关系结束结点,还包括作为直接关系开始结点的结点信息和作为直接关系结束结点的结点信息。其中,结点信息可以为结点名称、标识号等唯一标识各结点的信息,在实际运用中,可以采用数学形式、数据库表中的字段等方式来构建两结点间的直接关系信息,例如,以数学形式(A,B)构建两结点间的直接关系信息,A为直接关系开始结点,B为直接关系结束结点;结点可以表示物料、BOM、路由器、交换机等与其他结点存在关系的物体。在循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息后,最终剩余的结点关系信息就是结点循环嵌套的检测结果,由该剩余的结点关系信息可以得知哪些结点构成循环嵌套关系,上述步骤S102通过具体包括:
在步骤S1021中,依次提取结点关系信息中包括的各结点信息;
在步骤S1022中,根据结点关系信息,当检测到所提取的结点信息所表示的结点只作为直接关系开始结点或直接关系结束结点时,删除结点关系信息中包括该结点信息的所有直接关系信息,返回步骤S1021。
这里,由获取到的结点关系信息中的各条直接关系信息,即可提取结点关系信息中包括的各结点信息。根据结点关系信息中的各条直接关系信息,可以判断获取到的结点信息所表示的结点是否只作为直接关系开始结点或直接关系结束结点,如果是,则删除结点关系信息中该结点所对应的所有直接关系信息,即删除结点关系信息中所有包括该结点信息的直接关系信息,完成后,返回步骤S1021,重新提取结点关系信息中包括的各结点信息;否则,对提取到的下一个结点信息进行相应判断处理。如果提取到的结点关系信息中包括的所有的结点信息对应的结点,者既作为关系开始结点又作为关系结束结点,则结束。此时,剩余的直接关系信息即为结点循环嵌套的检测结果。
采用上述结点循环嵌套的检测方法,只需要根据结点关系信息循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息,剩下的直接关系信息所组成的结点关系信息即为结点循环嵌套的检测结果,处理过程简单、效率高、省时,并且适用于涉及到的结点数量大的情况。
下面,以一个具体的例子对上述结点循环嵌套的检测方法进行详细说明。采用数据库表来记载结点关系信息,数据库表的一条记录对应一条直接关系信息,用一条记录的两个字段来存储对应的直接关系开始结点的结点信息和直接关系结束结点的结点信息。
首先,获取到的结点关系信息为图2所示的数据库表,字段f1中存储直接关系开始结点的结点信息,字段f2中存储对应的直接关系结束结点的结点信息;接着,依次提取该数据库表各条记录中存储的结点信息,第一次提取到的结点信息为A、B、C、D、...、F...、P等。由于A既出现在字段f1中又出现在字段f2中,所以继续判断。判断B、C、D、X和Y也既出现在字段f1中又出现在字段f2中,继续判断F。由于F只出现在字段f2中,所以删除该数据库表中所有包含F的字段。然后,按照上述步骤,重新提取数据库表各条记录中存储的结点信息后,根据判断分别删除该数据库表中包含G、N、P、O、I、H、J、M和X的相应记录。再依次提取数据库表中存储的结点信息A、B、C、D和Y,由于这些结点信息都既出现在字段f1中又出现在字段f2中,所以结束。此时,数据库表中存储的包含结点信息A、B、C、D和Y的记录即为剩余的结点关系信息,数据库表如图3所示。
为了提供结点间最小路径的环路,作为本发明的一个优选实施例,在步骤S103后,还包括最小路径查找步骤,具体为:
根据剩余的结点关系信息,搜索其中包括的所有环路信息,并检测输出搜索到的不包括其他环路信息的环路信息。
根据步骤S103得到的剩余的结点关系信息中的直接关系信息可以得到其中涉及到的对应各结点的环路信息。该最小路径查找步骤具体包括:
依次提取剩余的结点关系信息中包括的各结点信息;
根据剩余的结点关系信息进行向前和/或向后搜索,得到所提取的各结点信息对应的所有环路信息,该环路信息包括搜索到的所有结点信息;
根据各环路信息包括的结点信息,检测输出不包括其他环路信息的环路信息。
在上面得出的结点循环嵌套信息中,可以先依次提取各条记录对应的字段f1中存储的结点信息,例如,依次提取到结点信息A、B、C、D、A和Y。对于提取到的结点信息A,根据结点关系信息中的直接关系信息进行向后搜索,直至搜索到字段f2中存储的结点信息A,中间搜索到结点信息B、C和D,则得到A对应的一条包括A、B、C、D和A环路信息。接着,再对提取到结点信息B、C、D、A和Y进行上述向前搜索,得到各结点信息对应环路信息。最后,根据得到的环路信息中包括的结点信息,判断各环路信息是否包括其他的环路信息,如果没有包括其他的环路信息,则该搜索到的路径已经是最小路径,输出该环路信息;否则,该搜索到的路径中还包括其他路径,不对该环路信息进行任何处理,继续判断下一环路信息。在具体实现中,可用将搜索到的结点信息、得到的环路信息等先存储到缓存或存储单元等中。
另外,还可以先依次提取各条记录对应的字段f2中存储的结点信息,再根据结点关系信息中的直接关系信息向前搜进行上述环路信息搜索,并输出环路信息。
进一步地,为了提高效率,在先依次提取各条记录对应的字段f1或f2中存储的结点信息后,还可以同时进行向前和向后搜索,直至向前搜索和向后搜索到的结点信息相同。例如,首先提取到的结点信息为A,从字段f1中存储A的记录开始进行向后搜索,搜索到结点信息B、C;同时,从字段f2中存储A的记录开始进行向前搜索,搜索到结点信息D、C。可以得到A对应的一条包括A、B、C和D环路信息。对于其他提取到的结点信息B、C、D、A和Y,也同时进行向前和向后搜索,得到对应的环路信息。
当然,还可以存储输出的环路信息,以供需要时直接获取该环路信息即可进行相应的处理。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等,该程序用来执行如下步骤:
获取结点关系信息,该结点关系信息由至少两条直接关系信息组成;
循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息;
得到剩余的结点关系信息。
图4示出了本发明实施例提供的结点循环嵌套检测装置的结构,为了便于说明仅示出了与本发明实施例相关的部分。该结点循环嵌套检测装置可以用于物料管理系统、路由器管理系统等系统,该结点循环嵌套检测装置可以是运行于这些结点系统设备内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些系统中,其中:
信息获取单元401,获取结点关系信息,该结点关系信息由至少两条直接关系信息组成,其实现如上所述,不再赘述。
信息修改单元402,根据信息获取单元401获取到的结点关系信息,循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息。
结果获取单元403,得到信息修改单元402处理后剩余的结点关系信息,其实现如上所述,不再赘述。
并且,信息修改单元402具体包括:
第一信息提取模块4021,依次提取信息获取单元401获取到的结点关系信息中包括的各结点信息,其实现如上所述,不再赘述;
信息删除模块4022,根据信息获取单元401获取到的结点关系信息,当检测到第一信息提取模块4021提取的结点信息所表示的结点只作为直接关系开始结点或直接关系结束结点时,删除结点关系信息中包括该结点信息的所有直接关系信息,并触发第一信息提取模块4021重新提取结点信息,其实现如上所述,不再赘述。
进一步地,为了提供结点间最小路径的环路,作为本发明的一个优选实施例,结点循环嵌套检测装置还包括:
路径查找单元404,根据结果获取单元403得到的结点关系信息,搜索其中包括的所有环路信息,并检测输出搜索到的不包括其他环路信息的环路信息。该路径查找单元404具体包括:
第二信息提取模块4041,依次提取结果获取单元403得到的结点关系信息中包括的各结点信息,其实现如上所述,不再赘述;
环路信息生成模块4042,根据结果获取单元403得到的结点关系信息进行向前和/或向后搜索,得到第二信息提取模块4041提取到的各结点信息对应的所有环路信息,该环路信息包括搜索到的所有结点信息,其实现如上所述,不再赘述;
输出模块4043,根据各环路信息包括的结点信息,检测输出环路信息生成模块4042得到的不包括其他环路信息的环路信息,其实现如上所述,不再赘述。
在本发明实施例中,循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息,实现了一种结点循环嵌套的检测方法,处理过程简单、效率高、省时,并且适用于涉及到的结点数量大的情况。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种结点循环嵌套的检测方法,其特征在于,所述方法包括下述步骤:
获取结点关系信息,所述结点关系信息由至少两条直接关系信息组成;
循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息;
得到剩余的结点关系信息。
2.如权利要求1所述的方法,其特征在于,所述循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息的步骤具体包括:
依次提取结点关系信息中包括的各结点信息;
根据结点关系信息,当检测到所提取的结点信息所表示的结点只作为直接关系开始结点或直接关系结束结点时,删除结点关系信息中包括该结点信息的所有直接关系信息,返回所述依次提取结点关系信息中包括的各结点信息的步骤。
3.如权利要求1所述的方法,其特征在于,在所述得到剩余的结点关系信息的步骤后,还包括最小路径查找步骤,具体为:
根据剩余的结点关系信息,搜索其中包括的所有环路信息,并检测输出搜索到的不包括其他环路信息的环路信息。
4.如权利要求3所述的方法,其特征在于,所述根据剩余的结点关系信息,搜索其中包括的所有环路信息,并检测输出搜索到的不包括其他环路信息的环路信息的步骤具体包括:
依次提取剩余的结点关系信息中包括的各结点信息;
根据剩余的结点关系信息进行向前和/或向后搜索,得到所提取的各结点信息对应的所有环路信息,所述环路信息包括搜索到的所有结点信息;
根据各环路信息包括的结点信息,检测输出不包括其他环路信息的环路信息。
5.一种结点循环嵌套检测装置,其特征在于,所述装置包括:
信息获取单元,用于获取结点关系信息,所述结点关系信息由至少两条直接关系信息组成;
信息修改单元,用于根据所述信息获取单元获取到的结点关系信息,循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息;以及
结果获取单元,用于得到所述信息修改单元处理后剩余的结点关系信息。
6.如权利要求5所述的装置,其特征在于,所述信息修改单元包括:
第一信息提取模块,用于依次提取所述信息获取单元获取到的结点关系信息中包括的各结点信息;以及
信息删除模块,用于根据所述信息获取单元获取到的结点关系信息,当检测到所述第一信息提取模块所提取的结点信息所表示的结点只作为直接关系开始结点或直接关系结束结点时,删除结点关系信息中包括该结点信息的所有直接关系信息,并触发所述第一信息提取模块重新提取结点信息。
7.如权利要求5所述的装置,其特征在于,所述装置还包括:
路径查找单元,用于根据所述结果获取单元得到的结点关系信息,搜索其中包括的所有环路信息,并检测输出搜索到的不包括其他环路信息的环路信息。
8.如权利要求7所述的装置,其特征在于,所述路径查找单元包括:
第二信息提取模块,用于依次提取所述结果获取单元得到的结点关系信息中包括的各结点信息;
环路信息生成模块,用于根据所述结果获取单元得到的结点关系信息进行向前和/或向后搜索,得到所述第二信息提取模块提取到的各结点信息对应的所有环路信息,所述环路信息包括搜索到的所有结点信息;以及
输出模块,用于根据各环路信息包括的结点信息,检测输出所述环路信息生成模块得到的不包括其他环路信息的环路信息。
9.一种包含权利要求5至8任一项所述结点循环嵌套检测装置的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910110221A CN101697211A (zh) | 2009-10-23 | 2009-10-23 | 一种结点循环嵌套的检测方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910110221A CN101697211A (zh) | 2009-10-23 | 2009-10-23 | 一种结点循环嵌套的检测方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101697211A true CN101697211A (zh) | 2010-04-21 |
Family
ID=42142315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910110221A Pending CN101697211A (zh) | 2009-10-23 | 2009-10-23 | 一种结点循环嵌套的检测方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101697211A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102654842A (zh) * | 2011-03-02 | 2012-09-05 | 深圳市金蝶中间件有限公司 | 一种判断流程图中是否存在循环回路的方法和装置 |
CN107506951A (zh) * | 2017-10-11 | 2017-12-22 | 金蝶软件(中国)有限公司 | 一种物料成本的计算方法及相关装置 |
-
2009
- 2009-10-23 CN CN200910110221A patent/CN101697211A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102654842A (zh) * | 2011-03-02 | 2012-09-05 | 深圳市金蝶中间件有限公司 | 一种判断流程图中是否存在循环回路的方法和装置 |
CN102654842B (zh) * | 2011-03-02 | 2014-07-30 | 深圳市金蝶中间件有限公司 | 一种判断流程图中是否存在循环回路的方法和装置 |
CN107506951A (zh) * | 2017-10-11 | 2017-12-22 | 金蝶软件(中国)有限公司 | 一种物料成本的计算方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101515291A (zh) | 一种将数据批量导入数据库的方法及系统 | |
CN102890675B (zh) | 一种数据存储和查找的方法及装置 | |
CN104298736A (zh) | 数据集合连接方法、装置及数据库系统 | |
CN102081649B (zh) | 一种搜索电脑文件的方法及其系统 | |
CN102929697A (zh) | 一种状态机、调度方法、装置及usb媒体播放控制装置 | |
CN102521356B (zh) | 基于确定有限状态自动机的正则表达式匹配设备和方法 | |
CN103136244A (zh) | 基于云计算平台的并行数据挖掘方法及系统 | |
CN101567014B (zh) | 一种设备信息的检索方法、装置和线卡 | |
CN104424240A (zh) | 多表关联方法、主服务节点、计算节点及系统 | |
CN101833511A (zh) | 数据管理方法、装置和系统 | |
KR20170065374A (ko) | 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 | |
CN101697211A (zh) | 一种结点循环嵌套的检测方法、装置及系统 | |
CN105550220B (zh) | 一种异构系统的取数的方法及装置 | |
CN107301203B (zh) | 一种海量数据的比对方法及系统 | |
CN101155123B (zh) | 一种保证转发表项可靠性的方法及装置、及一种转发设备 | |
CN112837008A (zh) | 条码读取方法、装置、设备及存储介质 | |
CN106776255A (zh) | 智能电视系统的日志提取方法及装置 | |
CN102902701A (zh) | 信息查询系统及方法 | |
CN112531709B (zh) | 一种电网拓扑配置方法 | |
CN101980195B (zh) | 一种基于移动通信终端的数据库索引修复方法及装置 | |
CN103886028A (zh) | 从存储设备拷贝文件到广告机的方法和装置 | |
CN104268277A (zh) | 用于数据库的数据读取方法及装置 | |
CN103870462B (zh) | 一种数据处理方法及装置 | |
CN103684942B (zh) | 一种拓扑网络的两级分块方法 | |
CN102339284B (zh) | 数据库索引的建立方法及其电脑系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100421 |