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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zago-vlad
13 / 8 / 1
Регистрация: 12.01.2010
Сообщений: 106
#1

Вопросы о графах - C++

03.02.2012, 19:47. Просмотров 677. Ответов 9
Метки нет (Все метки)

Всем привет!

Появилось несколько вопросов о графах:
1) Как представить граф в C++?
2) Как найти самый краткий путь между двумя вершинами графа?

Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2012, 19:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вопросы о графах (C++):

Игры на графах - C++
Помогите пожалуйста 😊 Имя входного файла: стандартный ввод Имя выходного файла: Стандартный вывод Ограничение по времени:1 секунда ...

Алгоритмы на графах - C++
Изолированные города В государстве N городов с номерами 1.2….N. Некоторые города связаны между собой дорогами и образуют штат. Сколько...

"Поиск путей на графах". С++ - C++
Задача. Для некоторого ориентированного графа задана матрица весов W. С помощью алгоритма Форда-Беллмана вычислить веса кратчайших...

Вопросы по C++ - C++
Пожалуй начну) Можно ли в С++, обьявить определенному элементу массива определенное значение, как можно в пхп? Приведу пример: php:...

Вопросы по С++ - C++
1) Чем отличается const *char от сhar при использовании в программах? 2) Тип void * так и не понял как и что с ним делать. Видел в...

Вопросы!!! - C++
прошу посоветовать что почитать чтобы ответить на следующие вопросы!!(можно ответить ссылками) если будут промеры по теме буду рад:) ...

9
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
03.02.2012, 21:05 #2
Цитата Сообщение от zago-vlad Посмотреть сообщение
Всем привет!

Появилось несколько вопросов о графах:
1) Как представить граф в C++?
2) Как найти самый краткий путь между двумя вершинами графа?

Заранее спасибо!
1) Таблица смежности, матрица смежности
2) Алгоритм Дейкстры
1
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
03.02.2012, 21:11 #3
Здесь найдешь полезное о графах....
1
Вложения
Тип файла: pdf ZaoTour2Razbor2011.pdf (466.7 Кб, 34 просмотров)
zago-vlad
13 / 8 / 1
Регистрация: 12.01.2010
Сообщений: 106
04.02.2012, 00:48  [ТС] #4
Цитата Сообщение от Hi4ko Посмотреть сообщение
Таблица смежности, матрица смежности
А можно подробнее?
0
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
04.02.2012, 01:01 #5
что подробнее? гуглом пользоваться умеем?

это раздел для помощи в программировании на языках C/C++, а не в дискретной математике и теории графов.
0
zago-vlad
13 / 8 / 1
Регистрация: 12.01.2010
Сообщений: 106
04.02.2012, 01:19  [ТС] #6
Цитата Сообщение от Paporotnik Посмотреть сообщение
это раздел для помощи в программировании на языках C/C++
Под "подробнее" я имел ввиду пример кода на C++ с комментариями. Гуглил с самого начала - нашел только код на Паскале.
0
Vancan
20 / 20 / 1
Регистрация: 17.01.2012
Сообщений: 36
04.02.2012, 01:28 #7
Цитата Сообщение от zago-vlad Посмотреть сообщение
Как представить граф в C++?
Вот пример (моя лаба с универа)
1
Вложения
Тип файла: rar Graf_P.rar (416.4 Кб, 37 просмотров)
Evgen311293
57 / 57 / 1
Регистрация: 23.03.2011
Сообщений: 567
Записей в блоге: 3
04.02.2012, 01:41 #8
Цитата Сообщение от zago-vlad Посмотреть сообщение
Всем привет!

Появилось несколько вопросов о графах:
1) Как представить граф в C++?
2) Как найти самый краткий путь между двумя вершинами графа?

Заранее спасибо!
Есть такое слово slice - адаптер для линейных массивов.
Суть - любой массив любой размерности представляется линейной последовательностью элементов, но пересчитывая индексы через slice, можно получать представление массива произвольной размерности и его под-элементы (строки, столбцы и т.д.).
1
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
04.02.2012, 10:21 #9
с матрицей смежности смешно не разобраться
а вот со списком смежности я обычно делаю двумерный ВЕКТОР
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
vector< vector<int> > g;
int main(){
int n;\\кол-во вершин
cin>>n;
for(int i=0;i<n;i++){\\пишу для случая, если 0 означает конец списка для данной вершины
int t;
vector<int> Temp; \\вектор с номерами вершин
cin>>t;
if(t!=0)
{
    Temp.push_back(t-1);\\нумерация вершин в плюсах с нуля же)
while(t!=0)
    {
cin>>t;
if(t!=0)
    Temp.push_back(t-1);
}
}
g.push_back(Temp);
}
}
Что такое вектор? Это класс "продвинутый массив", который также является динамическим.
Про методы почитай тут
1
zago-vlad
13 / 8 / 1
Регистрация: 12.01.2010
Сообщений: 106
04.02.2012, 14:15  [ТС] #10
Всем спасибо, разобрался!
0
04.02.2012, 14:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2012, 14:15
Привет! Вот еще темы с ответами:

Вопросы по C++ - C++
Хочу учиться писать программы на C++, и у меня несколько вопросов 1) Этот язык такой же сложный, как Ассемблер? Например, Паскаль мне...

Вопросы по C++ - C++
Всем привет! У меня появилось несколько вопросов по C++, был бы рад, если бы Вы помогли бы мне хотя бы из одним из них. 1) Как...

Вопросы - C++
Здравствуйте! 1. Как сделать так, чтобы программа (функция (strlen() ) не считала пробелы? 2. Можно ли упростить (сократить)...

Вопросы - C++
Ребята, никто не писал никогда код на С++, связанный с имитационным моделированием? Просто, дали, там набор математич. формул и теория, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru