- Пустое паросочетание объявляем текущим паросочетанием М
- Если все вершины из Х насыщены в М, тогда М является полным паросочетанием
- Иначе выбираем произвольную свободную вершину из Х и делаем поиск в глубину переходя от х к y по ребрам, не входящими в М, обратно по ребрам из М (переходя по ребрам от y к х) Если найдется свободная вершина y тогда найдена чередующаяся цепь(все вершины различны, первая и последняя вершина свободная, ребра из y в x входят в паросочетание). Увеличиваем текущее паросочетание M и переходим на шаг 2. Иначе если свободная вершина не нашлась тогда полного паросочетания не существует