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

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

Войти
Регистрация
Восстановить пароль
 
Priorzivil
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 11
#1

Использовать представление графа в виде списков смежности добавить в орграф новую вершину - C++

11.03.2013, 18:07. Просмотров 630. Ответов 0
Метки нет (Все метки)

Народ меня тут 11 задач мне нужно их подробно прокомментировать какая строчка что делает(пример первая задача) помогите плиз кому не сложно хотя бы по одной задачке буду очень благодарен

задача 11 Граф 2
использовать представление графа в виде списков смежности
добавить в орграф новую вершину.

Input:
Код
6
1 2 3
2 1 3 4
3 1 2 5
4 2 5
5 3 4 6
6 5
5
7 6
7 1
8 7
8 3
9 8


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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <fstream>
 
using namespace std;
 
vector<vector<int>> g;
int n;
 
int main () {
    freopen("input.txt", "r", stdin);
    cin >> n;
    g.resize(n);
    for (int i = 0; i < n; i++) {
        int a;
        cin >> a;
        a--;
        while (cin.peek() != '\n' && cin.peek() != EOF) {
            int b;
            cin >> b;
            b--;
            g[a].push_back(b);
        }
    }
 
    int k;
    cin >> k;
    for (int i = 0; i < k; i++) {       
        // Дуга из v в u
        int v, u;
        cin >> v >> u;
        if (u > g.size() || v > g.size()) {
            g.push_back(vector<int>());
            n = g.size();
        }
        --u;
        --v;
        g[v].push_back(u);
    }
 
    cout << "spisok smeznosti grapha:" << endl;
    for (int i = 0; i < n; i++) {
        cout << i + 1 << ": ";
        for (int j = 0; j < g[i].size(); j++)
            cout << g[i][j] + 1 << " ";
        cout << endl;
    }
 
    return 0;
}



output:
Код
spisok smeznosti grapha:
1: 2 3
2: 1 3 4
3: 1 2 5
4: 2 5
5: 3 4 6
6: 5
7: 6 1
8: 7 3
9: 8
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 18:07     Использовать представление графа в виде списков смежности добавить в орграф новую вершину
Посмотрите здесь:

C++ Матрица/связные_списки смежности для ориентированного графа
C++ Графическое представление графа
C++ Представление графа в виде списка вершин.
C++ Определение матрицы смежности графа по заданной матрице инцидентности
Список смежности для графа C++
C++ Определить планарность графа по матрице смежности
Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности C++
C++ Сгенерировать матрицу смежности полного графа
C++ Матрица смежности графа - поиск в глубину
C++ Представление графов с помощью связных списков
C++ Определить, имеет ли данный ациклический орграф корень. Список смежности
Организовать представление множеств в виде линейных однонаправленных списков C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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