Я работаю над теориями алгоритмов графов (я пока не занимаюсь математикой с компьютерными науками), и у меня есть некоторые проблемы с сопоставлением с самим собой, для которых я по серьезным причинам использую Хопкрофт-Карп ( Алгоритм Хопкрофта-Карпа ).Я не хочу решать их вручную, поэтому я хотел бы использовать программу для этого.Но поскольку я изучаю C, мне было бы интересно иметь C-код для его решения.Я нашел пару идей для C ++, но я пока не могу их прочитать (возможно, это будет следующий язык программирования через несколько лет ...)
Есть ли у кого-нибудь из вас хороший алгоритм программирования Хопкрофта Карпа на C?на своем компьютере, кто хочет поделиться им со мной и сообществом?Это не просто код, я был бы поражен объяснением того, как он работает в C. Я пока не могу представить, как использовать BFS и DFS с помощью указателей.Заранее спасибо, если у кого-нибудь есть код + объяснение.
====
Редактировать: Как я уже сказал молодым разработчикам, я теперь разветвил репо и попытался внедрить его в Cнасколько я мог без особого знания об этом.Вы можете найти все внутри файла main.c, там нет ни заголовка, ни чего-либо существующего.Каждое место, где находится «ТОДО», означает, что есть чем заняться.Итак, в данный момент я реализовал и изменил все на функциональность C, как вы можете видеть здесь.https://github.com/Dabendorf/hopcroft-karp/blob/master/main.c
Он компилируется, но где-то есть одна ошибка, которую я не могу найти, потому что она дает неверные результаты.Это как-то связано с тем, что первоначальный автор считает от одного, а я использую обычный массив, считая от нуля.Но это только мои предположения.Так что ошибка может быть и в другом месте.
Кто-нибудь видит это?