STEP 0: 置所有节点的标号为 label(i) = 'NULL',初始匹配 M 为空集。
STEP 1: 选取网络中一个暴露点 p,置标号 label(p) = 'OUTER',入队 LIST = {p}。
STEP 2: 若 LIST 为空则表明不存在 p 出发的增广路,寻找下一个暴露点或结束。
STEP 3: 对节点 i 的邻居 j:若 j 为暴露点且非根点,则确定增广路 P,转 STEP 6。
STEP 4: 若 j 为已匹配点且无标号,则标 label(match(j))='OUTER' 并将其入队。
STEP 5: 若 label(j)='OUTER',检测到奇圈(花朵),进行收缩并令其基节点为 OUTER。
STEP 6: 利用数组 pred 追踪翻转匹配状态。所有节点重置 NULL 标号,返回 STEP 1。