Я читал это как «Когда iterable
полностью исчерпан, и выполнение собирается перейти к следующему оператору после завершения for
, будет выполнено предложение else». Таким образом, когда итерация нарушена break
, это не будет выполнено.
Я лично считаю, что лучший способ понять это - реализовать представление графа самостоятельно с нуля.
С одной стороны, это покажет вам реальные недостатки реализации, из которых вы извлечете почему или почему конкретный алгоритм может быть интересным / хорошим / эффективным / чем угодно. С другой стороны, я думаю, что понимание графов и их использования в реальной жизни, включая их последствия (рекурсия, производительность / масштабируемость, приложения, альтернативы, ...), упрощается благодаря восходящему подходу.
Но, возможно, это всего лишь я. Вышесказанное является очень личным вкусом.
Мне показался интересным ваш вопрос, я немного погуглил и нашел JGraphEd .
Он не охватывает все алгоритмы графов, но выглядит как хороший инструмент для экспериментов .
Я согласен с balpha. Лучший способ по-настоящему изучить и понять алгоритмы - это реализовать. Просто выберите алгоритм и реализуйте его. Когда вы дойдете до точки, в которой застрянете или не уверены, посмотрите ряд существующих примеров. Тогда вы сможете сравнивать свое собственное мышление с мышлением других с позиции понимания вместо того, чтобы просто принимать то, что предлагается.
Как только вы усвоите то, что вы хотите, лучший способ укрепить свое понимание - это попытаться научить это кому-нибудь или опишите это кому-то другому. У вас могут быть люди, желающие вас выслушать, или, по крайней мере, вы могли бы написать запись в блоге для людей, плохо знакомых с алгоритмом, который вы только что изучили.
Но если вы ищете «безболезненный», то, возможно, вам стоит держитесь подальше от алгоритмов; -)
Здесь вы найдете описание каждой проблемы с набором задач acm. Вы можете увидеть категорию каждой проблемы и подсказать, как ее решить. Просто найдите проблемы, связанные с графиком. Хороший совет - использовать эти подсказки только в том случае, если вы пытались решить проблему самостоятельно и потерпели неудачу.