Мегаобучалка Главная | О нас | Обратная связь


Общие сведения о графах



2019-11-13 666 Обсуждений (0)
Общие сведения о графах 0.00 из 5.00 0 оценок




Понятие графа. Виды графов

С помощью графов можно решать задачи, сформулированные в различных областях знаний: в автоматике, электронике, физике, экономике, химии и др. Графы позволяют изображать и моделировать  схемы дорог, компьютерных сетей, газопроводов, тепло- и электросетей, генеалогическое древо, процесс вычисления сложных математических выражений.

Граф – совокупность точек, соединенных линиями. Точки называются вершинами, или узлами, а линии – ребрами или дугами.

Рис. 43. Пример графа.

На приведённом рисунке каждая линия, соединяющая две вершины, не имеет направления, т.е. позволяет «двигаться» как от первой вершины ко второй, так и наоборот. Такие соединительные линии называются рёбрами. С помощью рёбер, к примеру, можно изобразить улицы с двусторонним движением или факт дружбы между двумя людьми.

Когда у ребра оба конца совпадают, т. е. оно выходит из вершины и входит в нее, то такое ребро называется петлей.

Граф, в котором вершины соединяются только рёбрами, называется неориентированным.

Если для соединительной линии задаётся направление, она называется дугой. Граф, в котором вершины соединяются дугами, называют ориентированным графом или орграфом.

Рис. 44. Ориентированные графы (орграфы).

Примером ориентированного графа может служить генеалогическое древо, как на рисунке слева, где дуга A3A1 означает, что A3 является родителем для A1, а не наоборот, или голосование при выборе старосты класса[38] (на рисунке справа), где направление дуги определяет, кто из двух человек за кого отдал голос. При помощи орграфов удобно представить транспортную сеть для улиц с односторонним движением, схему эскалаторов в супермаркете и т.д.

Граф, в котором присутствуют и ребра, и дуги называется смешанным.

Также графы делятся на связные и несвязные.

В связном графе между любой парой вершин существует как минимум один путь.

В несвязном графе существует хотя бы одна вершина, не связанная с другими.

Рис. 45. Связный граф (слева) и несвязный граф (справа)

Представление графа в программе

Рассмотрим граф V с n вершинами. Его матрицей смежности называется матрица An , n такая, что

       Ai , j = 1, если вершина Vi соединена с Vj

       Ai , j = 0 в противном случае.

Например, для представленных на рисунке графов матрица смежности будет выглядеть так:

Рис. 46. (Рисунок к примеру) матрица смежности

 

Пример №1 (слева)

  0 1 2 3 4
0   0 1 0 1
1 0   0 1 1
2 1 0   0 0
3 0 1 0   1
4 1 1 0 1  

 

Пример №2 (справа)

  0 1 2 3 4
0   1 0 0 1
1 0   1 0 0
2 1 0   0 1
3 0 1 1   0
4 1 1 1 0  

 

 

Легко увидеть, матрица смежности неориентированного графа является симметричной относительно главной диагонали.

Альтернативным способом представления графа является список смежности. В таком списке просто задаются все рёбра или дуги, соединяющие вершины графа. Для неориентированного графа при этом длину списка можно существенно сократить, перечисляя лишь связи

       Ai , j где j > i.

Таким образом, для графов из примера списки смежности будут выглядеть так:

Пример №1 (слева)

0 – 2, 0 – 4, 1 – 3, 1 – 4, 3 – 4

Пример №2 (справа)

0 – 1, 0 – 4, 1 – 2, 2 – 1, 2 – 4, 3 – 1, 3 – 2, 4 – 0, 4 – 1, 4 - 2

Задача №242.  Дороги (acmp.ru)

В галактике «MilkyWay» на планете «Snowflake» есть N городов, некоторые из которых соединены дорогами. Император галактики «MilkyWay» решил провести инвентаризацию дорог на планете «Snowflake». Но, как оказалось, он не силен в математике, поэтому он просит вас сосчитать количество дорог. Требуется написать программу, помогающую императору сосчитать количество дорог на планете «Snowflake».

Входные данные

В первой строке входного файла INPUT.TXT записано число N (0 ≤ N ≤ 100). В следующих N строках записано по N чисел, каждое из которых является единичкой или ноликом. Причем, если в позиции (i, j) квадратной матрицы стоит единичка, то i-ый и j-ый города соединены дорогами, а если нолик, то не соединены.

Выходные данные

В выходной файл OUTPUT.TXT необходимо вывести число, определяющее количество дорог на планете «Snowflake».

Пример

INPUT.TXT OUTPUT.TXT
5 0 1  0  0  0 1  0  1  1  0 0  1  0  0  0 0  1  0  0 0 0  0  0  0  0 3

Решение

Очевидно, что речь в задаче идёт о неориентированном графе, матрица смежности которого симметрична по отношению к главной диагонали. Т.е. количество дорог определяется полусуммой всех элементов матрицы смежности.

#include <fstream>

using namespace std;

int main(){

ifstream fin("input.txt");

ofstream fout("output.txt");

int n, sum = 0, t;

fin >> n;

n *= n;

for(int i = 0; i < n; i++){

fin >> t;

sum += t;

}

fout << sum / 2;

}

Задача №243.  Проверка полноты графа

Неориентированный граф называется полным, если любая пара его различных вершин соединена хотя бы одним ребром. Для заданного списком ребер графа проверьте, является ли он полным.

Формат входных данных

Сначала вводятся числа n ( 1 ≤ n ≤ 100) – количество вершин в графе и m (1 ≤ m ≤ 10000) – количество ребер. Затем следует m пар чисел – ребра графа.



2019-11-13 666 Обсуждений (0)
Общие сведения о графах 0.00 из 5.00 0 оценок









Обсуждение в статье: Общие сведения о графах

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (666)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)