В рамках свободного изучения Haskell, я добрался до создания типов данных, и мне подумалось попробовать определить, что такое граф самостоятельно. Прошу проверить мою идею.
Пусть A - тип данных, хранящийся внутри ячеек графа.
Вроде бы тогда получается, что граф состоит из пустых ячеек и вершин. А вершины состоят из объектов типа А и списка вершин (в которые по моей задумке можно отправится из данной вершины). Функция
позволяет узнать, что хранится внутри данной вершины, а функция
позволяет просмотреть список вершин, доступных к путешествию. Функции
позволяют понять пуста ли ячейка или нет. Вопрос в том, можно на основании такой структуры организовать граф? И стоит пробовать накидывать шаблонный модуль для функций, работающих с графом.
-- 09.06.2015, 21:28 --sogoodweatherА зачем ребра? Я просто думал именно про это, ребра же нужны тогда когда мы храним в них какую-то информацию. А если в графе данные хранятся только в вершинах, то тогда не разумнее сделать примерно как в дереве? Ведь это упрощает жизнь, хотя конечно можно и так сказать (проблема в том, что я новичек в этом деле):
(я не совсем понимаю, что можно хранить в пути, что бы определяло его. По идее информацию о двух вершинах, которые он соединяет)