我有一个问题:是否有任何参考(例如纸张)有流程图布局的平面性证明?有人能建议用于生成流程图(平面)布局的算法吗?
我知道有一些代码到流程图的工具,但我不知道他们的内部。
答案 0 :(得分:4)
我不同意Hooked。流量图有一些限制(使用循环 NOT 其中之一)是平面的。一些例子:
repeat-until
,while-do
等)循环是一系列形成循环的语句。循环也很好,只要它们正确嵌套(并且这样的构造被设计为正确嵌套)。goto
或break
/ continue
/ return
可能跳转的语句)不确定。如果你有一个嵌套循环,并且从内部跳出外循环,这样的边将明显地与包含它的循环(循环,函数)相交。如果代码被翻译为一次退出一个循环,那么这些也很好。 (这种翻译与简单地引入节点来模拟交叉点并没有什么不同。)必须有一种更系统的方式来正式证明从一组特定构造的组合得到的流程图是平面的,我希望我能在5分钟内想到它,但没有运气:)
更新:顺便说一句,goto
s可以简单地创建一个K3,3或K5,例如这是一个K5(在老式的QBasic中!):
00 GOTO (INT(RND * 5) * 10)
10 GOTO (INT(RND * 5) * 10)
20 GOTO (INT(RND * 5) * 10)
30 GOTO (INT(RND * 5) * 10)
40 GOTO (INT(RND * 5) * 10)
答案 1 :(得分:1)