Алгоритм С для Хопкрофта-Карпа - PullRequest
0 голосов
/ 09 июня 2018

Я работаю над теориями алгоритмов графов (я пока не занимаюсь математикой с компьютерными науками), и у меня есть некоторые проблемы с сопоставлением с самим собой, для которых я по серьезным причинам использую Хопкрофт-Карп ( Алгоритм Хопкрофта-Карпа ).Я не хочу решать их вручную, поэтому я хотел бы использовать программу для этого.Но поскольку я изучаю C, мне было бы интересно иметь C-код для его решения.Я нашел пару идей для C ++, но я пока не могу их прочитать (возможно, это будет следующий язык программирования через несколько лет ...)

Есть ли у кого-нибудь из вас хороший алгоритм программирования Хопкрофта Карпа на C?на своем компьютере, кто хочет поделиться им со мной и сообществом?Это не просто код, я был бы поражен объяснением того, как он работает в C. Я пока не могу представить, как использовать BFS и DFS с помощью указателей.Заранее спасибо, если у кого-нибудь есть код + объяснение.

====

Редактировать: Как я уже сказал молодым разработчикам, я теперь разветвил репо и попытался внедрить его в Cнасколько я мог без особого знания об этом.Вы можете найти все внутри файла main.c, там нет ни заголовка, ни чего-либо существующего.Каждое место, где находится «ТОДО», означает, что есть чем заняться.Итак, в данный момент я реализовал и изменил все на функциональность C, как вы можете видеть здесь.https://github.com/Dabendorf/hopcroft-karp/blob/master/main.c

Он компилируется, но где-то есть одна ошибка, которую я не могу найти, потому что она дает неверные результаты.Это как-то связано с тем, что первоначальный автор считает от одного, а я использую обычный массив, считая от нуля.Но это только мои предположения.Так что ошибка может быть и в другом месте.

Кто-нибудь видит это?

1 Ответ

0 голосов
/ 09 июня 2018

Реализация Vermagav Алгоритм Хопкрофта-Карпа с классом, а другие функции не отображаются непосредственно на C. Возможно, это ваш лучший вариант, чтобы начать с этой реализации.Если вы начнете создавать Github форк проекта Vermagav, мы все можем вам помочь.

...