Форум программистов, компьютерный форум CyberForum.ru

Представление графов с помощью связных списков - C++

Восстановить пароль Регистрация
 
krvnk
 Аватар для krvnk
13 / 13 / 1
Регистрация: 01.04.2010
Сообщений: 164
15.06.2014, 23:43     Представление графов с помощью связных списков #1
Здравствуйте уважаемые форумчане. Помогите мне пожалуйста. Никак не могу понять как представить граф с помощью связанных списков. Я так понял нужно использовать двунаправленный список.
Что то типо этого.
Ссыль на предыдущий
Вершина или Ребро
Ссыль на следующий.

Но никак не могу представить как это. Ведь из вершины может выходить не одно ребро. И если брать рёбра, то как они буду ссылать на друг друга. Вообщем помогите глупому)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2014, 23:43     Представление графов с помощью связных списков
Посмотрите здесь:

Реализация графов C++
Моделирование с помощью односвязанных списков C++
C++ Создать меню с 6-ю элементами с помощью классов и списков
Теорие графов. Композиция двух неор. графов. C++
Программирование графов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kukurudza
104 / 85 / 6
Регистрация: 29.08.2012
Сообщений: 539
16.06.2014, 06:55     Представление графов с помощью связных списков #2
http://ru.wikipedia.org/wiki/%D0%93%...D0%BA%D0%B0%29
krvnk
 Аватар для krvnk
13 / 13 / 1
Регистрация: 01.04.2010
Сообщений: 164
16.06.2014, 13:37  [ТС]     Представление графов с помощью связных списков #3
Ребята. Я немного туповат. Не могу представить в голове как выглядит список. Мозг сыпется просто. Нашёл в инэте код. Вроде то что нужно. Объясните пожалуйста.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;
struct node 
{ 
    int v; 
    node* next; 
    node(int X, node* t) 
    { 
        v = X; next = t; 
    }
};
typedef node *link;
int main() 
{ 
    int i, j; 
    link adj[5]; 
    for (i = 0; i < 5; i++) 
        adj[i]; 
    while (cin>>i>>j) 
    {
        adj[j] = new node(i, adj[j]); 
        adj[i] = new node(j, adj [i]);
    }
}
В частности в цикле for зачем нужно писать adj[i], что-то вроде инициализация списка? В цикле while, я не понимаю что там происходит adj это элемент списка и одновременно ссылка которой присваеваевается Ребро? А как потом добраться до этих рёбер?
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
16.06.2014, 14:18     Представление графов с помощью связных списков #4
это на тему графы или на тему списки?
krvnk
 Аватар для krvnk
13 / 13 / 1
Регистрация: 01.04.2010
Сообщений: 164
16.06.2014, 15:41  [ТС]     Представление графов с помощью связных списков #5
На тему графы. Но нужно сделать через списки. По дурацки звучит конечно.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
16.06.2014, 15:55     Представление графов с помощью связных списков #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
строй список: каждый элемент вершина графа + список указателей на связанные с ней элементы.
Yandex
Объявления
16.06.2014, 15:55     Представление графов с помощью связных списков
Ответ Создать тему
Опции темы

Текущее время: 04:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru