После реализации большинства общих и необходимых функций для моей реализации Graph я понял, что пара функций (удаление вершины, поиск вершины и получение вершины) не имеют «лучшей» реализации.
Я использую списки смежности со связанными списками для своей реализации Graph, и я искал одну вершину за другой, пока она не нашла ту, которую я хочу. Как я уже сказал, я понял, что не использую «лучшую» реализацию. У меня может быть 10000 вершин, и мне нужно искать последнюю, но эта вершина может иметь ссылку на первую, что значительно ускорит процесс. Но это только гипотетический случай, это может случиться или не происходить.
Итак, какой алгоритм вы рекомендуете для поиска? Наши учителя говорили в основном о широте и глубине (и алгоритме Дикжстры, но это совершенно другой предмет). Между этими двумя, какой из них вы рекомендуете?
Было бы идеально, если бы я мог реализовать оба варианта, но у меня нет на это времени, мне нужно было бы выбрать один и реализовать его с приближением крайнего срока первой фазы ...
Полагаю, лучше использовать Depth-first, проще в реализации и, глядя на то, как они работают, кажется лучшим выбором. Но это действительно зависит от ввода.
Но что вы, ребята, предлагаете?