LINUX.ORG.RU

хранение адресов на элементы графа (дуг)


0

0

собсвенно говоря задача: хранить адреса на элементы графа, элементов может быть от нуля до количесова элементов в графе, была мысль хранить адреса в массиве, но при этом ограничено количесво дуг для одного элемента графа, кто что может предложит по этому поводу?

anonymous

linked list

anonymous
()

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

Pi ★★★★★
()

> задача: хранить адреса на элементы графа, элементов может быть от нуля до количесова элементов

теперь то же, но по-русски

grob ★★★★★
()

Граф:

1 -- 2 -- 4
|    |
3    5--6

Матрица:
  1 2 3 4 5 6
1 0 1 1 0 0 0
2 1 0 0 1 1 0
3 1 0 0 0 0 0
4 0 1 0 0 0 0
5 0 1 0 0 0 1
6 0 0 0 0 1 0

Sphinx ★★☆☆
()
Ответ на: комментарий от Sphinx

матрица некатит. вобшем нагугли STL.

anonymous
()

> была мысль хранить адреса в массиве, но при этом ограничено количесво дуг для одного элемента графа, кто что может предложит по этому поводу?

std::vector =)

YesSSS ★★★
()

Вообще-то, ответ на вопрос зависит от алгоритмов,
 которыми ты будешь обрабатывать свой граф.


Если теоретически: смотри реализации разреженных матриц.


> хранить адреса в массиве, но при этом ограничено количесво дуг для одного элемента графа

Перенумеруй вершины -- получешь индекс i (i=1..n) массива Vertex[].
 Значения массива Vertex[i] -- ссылки на списочные структуры,
 которые есть перечисления вершин, с которыми соединяется Vertex[i].

> Граф:
>
> 1 -- 2 -- 4
> |    |
> 3    5--6
>
> Матрица:
>    1: 2: 3: 4: 5: 6:
> 1: 0  1  1  0  0  0
> 2: 1  0  0  1  1  0
> 3: 1  0  0  0  0  0
> 4: 0  1  0  0  0  0
> 5: 0  1  0  0  0  1
> 6: 0  0  0  0  1  0


Хранение в строках текстового файла:

ориентированное представление дуг (векторов):
1: 2 3
2: 1 4 5
3: 1
4: 2
5: 2 6
6: 5

неориентированное представление дуг:
1: 2 3
2: 4 5
3: 
4: 
5: 6
6: 

Который удобно парсить в массив списков и редактировать вручную редактором.
(парсинг ч/з пробельные символы до конца строки)

P.S. http://www.linux.org.ru/view-message.jsp?msgid=1848770

:-)

Neksys ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.