Графы
Графы (Graphs) как структура данных
Заголовок раздела «Графы (Graphs) как структура данных»Используйте идею связных списков, чтобы реализовать графы. Графы — это списки, где каждый нод может иметь несколько соседних нодов.
Пример графа есть здесь.
-
Определите структуру нода из графа. Она должны иметь поле
intдля значения нода, а также динамический буфер для соседних нодов. Можете использовать код из static_buffer или dynamic_array.Можете использовать
std::vector, но тогда убедитесь, что понимаете RAII. -
Выполните одну из конфигураций графа:
-
В направленных графах, нод
Aможет быть соседом для нодаB, при том что нодBна обязательно является соседом нодаA. Для ненаправленных графов, нодыAиBвсегда являются соседями друг друга. Объясните как эта идея отобразится в том, как граф будет выглядеть в памяти. -
Напишите функцию, которая считает сумму значений соседних нодов заданного нода.
-
Выполните алгоритмы прохода DFS и BFS. Можете добавить дополнительную информацию в сами ноды.