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

Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.84
Pomogi
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 13
03.11.2013, 17:44     Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности #1
Нужно задать граф списком ребер и вывести его в виде матрицы смежности.

Знаю что в i строке j столбце ставят 1 если между вершинами i и j существует ребро или 0, если его не существует.
Список ребер - список пар вершин, которые соединены ребром.

Также знаю как матрицу смежности представить в виде списка ребер но задать граф списком ребер неполучается. Вот код
#include <iostream>
using namespace std;
int main()
{
int N;
cin >> N;
bool **A = new bool*[N];
for (int i=0; i < N; i++)
{
A[i] = new bool[N];
for (int j=0; j < N; j++)
cin >> A[i][j];
}
for (int i=0; i < N; i++)
{
for (int j=i+1; j < N; j++)
if (A[i][j])
cout << i+1 << " " << j+1 << endl;
delete[] A[i];
}
delete[] A;
}

както шыворот-навыворот изменить может я не знаю))


Пример вывода в миниатюре есть.
Миниатюры
Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 17:44     Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности
Посмотрите здесь:

C++ Неориентированный граф!!!
Считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл C++
C++ представить граф в виде матрицы
C++ граф в виде списка смежности. файловый ввод
C++ Дана матрица смежности и неориентированный граф. Выяснить соседствуют ли две вершины с данными номерами с одной общей вершиной
C++ Граф в виде матрицы смежности и количества вершин
C++ Ввести из файла неориентированный нагруженный граф в список смежности, используя вектор векторов
Неориентированный граф, вывести порядки вершин графа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ден-чекавен
4 / 4 / 1
Регистрация: 09.04.2013
Сообщений: 16
03.11.2013, 19:37     Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности #2
действительно странно
наверно лучше сделать так,может конечно не особо оптимально

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
#include <iostream>
 using namespace std;
 int main()
 {
    int N,kol=0,k;
    cin >> N;
    int **A = new int*[N];
    for(int i=0;i<N;i++)  //запишем все ребра, kol-количество точек
    {
         A[i] = new int[2];
         cin>>A[i][0]>>A[i][1];
         if(A[i][0]>kol)
            kol=A[i][0];
        if(A[i][1]>kol)
            kol=A[i][1]; 
    }
    bool **B=new bool*[kol];
    for(int i=1;i<=kol;i++) //для каждой точки найдем все смежные
    {
        B[i]=new bool[kol];
        for(int j=0;j<N;j++)
        {
            if(A[j][0]==i)
            {
                k=A[j][1];
                B[i][k]=1;
            }
            else
                if(A[j][1]==i)
                {
                    k=A[j][0];
                    B[i][k]=1;
                }
                if(A[i][0]==A[i][1])
                    B[A[i][0]][A[i][0]]=0;
        }
        for(int j=1;j<kol;j++)
            if(B[i][j]!=1)
                B[i][j]=false;
    }
    for(int i=1;i<=kol;i++)
    {
        for(int j=1;j<=kol;j++)
            cout<<B[i][j]<<"  ";
        cout<<endl;
    }
    return 1;
}
Yandex
Объявления
03.11.2013, 19:37     Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности
Ответ Создать тему
Опции темы

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