问题求解III-HW01 题解
Problem A: 控制流图
给定一段伪代码,求出其控制流图中每个节点的入度和出度。
伪代码中我们只需关注 GOTO
, IF-GOTO
,和所有的 label 语句即可。对于 GOTO
和 IF-GOTO
语句,当前基本块会有一条连向 GOTO 目标的边;此外,除非当前基本块的最后一条语句是无条件跳转,每个基本块都会向它的下一个基本块连边。
Problem B: 躺平
在一群人中给定一些两两排名先后的比较关系,问能否求出全场 rank 1。
将每个人抽象为图的一个顶点,A 的排名比 B 高则连一条从 A 到 B 的有向边。这样原问题转化为判断是否存在唯一的入度为 0 的节点,非常简单。