2010-07-10 3 views
1

Я изучил основы структур данных графа. Теперь я хочу реализовать всю структуру/алгоритмы/операции, которые могут выполняться на графиках.Реализация структуры данных графа в C

Пожалуйста, поделитесь некоторые полезные ссылки, где я могу начать делать реализации графа в С.

+0

Вы пробовали использовать CGAL? – Borealid

ответ

3

adjacency list и adjacency matrix два самых классических альтернатив для реализации графиков. Я не уверен, есть ли много примеров в Интернете в C, но here является одним из представлений матрицы смежности.

+0

Спасибо Алекс .... Выглядит неплохой пример ... Я буду работать ... но есть одна статья о списке смежности с неполной реализацией http://www.cs.bu.edu/teaching/c/graph/linked/........ Но мне трудно получить начало ... Можете ли вы помочь ... Я понял структуры, но теперь, если мы хотим вставить вершину или край .. и т. д. – AGeek

+0

@AGeek, в матрице приращения: край вставки (между существующими вершинами I и J) → просто установите матрицу [I] [J] = 1'; вставьте новую вершину N + 1 → выделите новую N + 1 матрицей N + 1 и скопируйте старую по надстройке с новой строкой и col из 0s. adj list: in adj matrix: insert edge (между существующими вершинами I и J) → добавить J в список adj из списка I; вставьте новую вершину → добавьте ее в список существующих вершин. –

0

Книга, The Algorithm Design Manual [PDF] имеет код C, реализующий график.

Для более подробного учебника по графикам и связанным с ним алгоритмам (DFS, Bellman-Ford и т. Д.) Introduction to Algorithms (отлично) имеет реализации псевдокода, которые вы могли бы реализовать.

Стандартные списки смежности или матричные представления, упомянутые Алексом, описаны в обоих.

Смежные вопросы