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

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

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

Напишите алгоритм вывода списка ребер неориентированного графа - C++

03.11.2013, 01:39. Просмотров 1105. Ответов 6
Метки нет (Все метки)

Простой неориентированный граф задан матрицей смежности, выведите его представление в виде списка ребер.
Вот начало
#include <iostream>

using namespace std;

int main()
{
int k[100][100],n,i,j;
cin>>n;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cin>>k[i][j];}}
0
Миниатюры
Напишите алгоритм вывода списка ребер неориентированного графа  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 01:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напишите алгоритм вывода списка ребер неориентированного графа (C++):

Реализовать представление графа в виде списка ребер в С++ - C++
Реализуйте представление графа в виде списка ребер (массива одно связанных списков) С режимами работы:1)Добавление элементов.2)Просмотр...

K-связность неориентированного графа - C++
Ребят, третью неделю уже думаю, не могу решить. Нужно написать программу на с++, определяющую k-связность графа. Как я понял с...

Обход неориентированного графа в глубину - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;vector&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; using namespace std; int...

Вывести количество вершин неориентированного графа, смежных с данной - C++
Есть задание по с++ совершенно не понимаю как делать. Кому не сложно, напишите прогу: Создать граф, используя список смежности....

Найти множество фундаментальных циклов связного неориентированного графа - C++
найти множество фундаментальных циклов связного неор.графа, заданного списками смежности. использую алгоритм поиска в глубину. написал...

Обход неориентированного графа в ширину. В конце выдаёт путь: 1 - C++
#include &lt;iostream&gt; #include &lt;queue&gt; #include &lt;conio.h&gt; using namespace std; int n;// число вершин графа int mass;//матрица...

6
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
03.11.2013, 09:46 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int main()
{
    int N;
    std::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++)
            std::cin >> A[i][j];
    }
    for (int i=0; i < N; i++)
    {
        for (int j=i+1; j < N; j++)
            if (A[i][j])
                std::cout << i+1 << " " << j+1 << std::endl;
        delete[] A[i];
    }
    delete[] A;
}
1
salam
163 / 144 / 12
Регистрация: 10.07.2012
Сообщений: 734
03.11.2013, 11:41 #3
хорошее начало.
0
Pomogi
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 14
03.11.2013, 14:44  [ТС] #4
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int main()
{
    int N;
    std::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++)
            std::cin >> A[i][j];
    }
    for (int i=0; i < N; i++)
    {
        for (int j=i+1; j < N; j++)
            if (A[i][j])
                std::cout << i+1 << " " << j+1 << std::endl;
        delete[] A[i];
    }
    delete[] A;
}
спасибо, а чтобы изменилось если это будет ориентированый граф?
а заданая матрица например
0 1 0
0 0 1
1 1 0
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
03.11.2013, 14:51 #5
Цитата Сообщение от Pomogi Посмотреть сообщение
спасибо, а чтобы изменилось если это будет ориентированый граф?
надо было бы сначала считывать дуги куда-нибудь, а потом удалять из них дубликаты. Внутренний цикл был бы
C++
1
2
for (int j=1; j < N; j++)
    if (A[i][j]  && i != j) // при i == j мы допускаем петли
0
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
03.11.2013, 16:12 #6
Цитата Сообщение от Pomogi Посмотреть сообщение
спасибо, а чтобы изменилось если это будет ориентированый граф
так программа же его и считывает
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
03.11.2013, 22:00 #7
Цитата Сообщение от ya_noob Посмотреть сообщение
так программа же его и считывает
вначале был неориентированный граф. У него дуги двунаправленные.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2013, 22:00
Привет! Вот еще темы с ответами:

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

Найти максимальное и среднее расстояние между центральными вершинами неориентированного графа - C++
Здравствуйте. нужно найти максимальное и среднее расстояние между центральными вершинами неориентированного графа. Структура данных-список...

Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер - C++
Всем доброго времени суток!!! Передо мной стоит задача: написать программу, которая выводит матрицу смежности графа с определенным...

По заданной квадратной матрице из нулей и единиц определите, может ли данная матрица быть матрицей смежности простого неориентированного графа - C++
помогите решить вот такую задачу пожалуйста(( По заданной квадратной матрице n*n из нулей и единиц определите, может ли данная матрица...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
03.11.2013, 22:00
Ответ Создать тему
Опции темы

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