Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Методические указания к выполнению работы. Vector <list <int>> graf. Vector <list <int>> graf.





Списки инцидентности графа в языке C++ могут быть реализованы вектором, размерность которого равна количеству вершин графа. Каждый его элемент является списком, содержащим номера вершин, смежных с данной. Предварительно определения контейнерных классов vector и list должны быть подключены к файлу.

То есть исходный граф, определяемый некоторой переменной, например graf, может описываться как

vector < list < int> > graf.

Если граф взвешенный, то компонентами его списков являются записи, содержащие помимо номера смежной вершины веса ребра (дуги), инцидентного этой вершине.

Ввод графа осуществляется из текстового файла одного из двух видов: «таблица смежности» или «таблица ребер». Такие файлы по-разному формируются и интерпретируются для неориентированных и ориентированных графов: для неориентированного графа задаются ребра графа, а для ориентированного – дуги. То есть, ребро неориентированного графа задается один раз, а соответствующие ему записи автоматически включаются в списки инцидентности обоих его концов.

Файл «таблица смежности» состоит из блоков, соответствующих вершинам графа. Каждый блок имеет следующую структуру:

начальная вершина: список смежных с ней вершин

соответствующие ребрам (дугам) веса

Количество строк с весами ребер равно числу весов. Блоки в таком файле могут располагаться в произвольном порядке, причем, если вершина не является начальной ни для одного ребра (дуги) или ребро уже включено в список инцидентности другого его конца, то соответствующий ей блок может отсутствовать в файле.

Например, для неориентированного графа

 

Рис. 2

файл «таблица смежности» имеет вид

v1: v3 v4

5 10

v3: v4

v4: v5

а ориентированный граф

 

 

Рис.4

задается «таблицей смежности»

1: 2 3

2: 3

3: 1

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

Файл «таблица ребер» имеет следующую структуру:

начальная вершина конечная вершина вес(а) ребра (дуги)

Также как и для «таблицы смежности» количество элементов в каждой из строк должно быть одинаковым, а число весов равно kv.

Например, файл «таблица ребер» графа, изображенного на рис.2 имеет вид.

v1 v3 5

v1 v4 10

v3 v4 7

v4 v5 4

Для формирования машинного представления графа необходимо сформировать список инцидентности для каждой вершины графа. Формирование списка инцидентности может осуществляться по принципу стека (LIFO), когда новая запись включается в начало списка, или по принципу очереди (FIFO), когда новая запись ставится в конец списка.

Определение количества вершин и рёбер (дуг) исходного графа выполняется программно при формировании списков инцидентности графа. Количество вершин определяется как максимальный номер вершины. Число рёбер (дуг) подсчитывается как суммарное число вершин для всех списков в исходном файле – для «таблицы смежности» и число строк – для «таблицы рёбер». Эти значения и построенные списки инцидентности выводятся на экран (или выходной файл).

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

nv – начальная вершина ребра (дуги);

kv – конечная вершина ребра (дуги).

1. Файл «таблица смежности».







Дата добавления: 2014-11-10; просмотров: 1020. Нарушение авторских прав; Мы поможем в написании вашей работы!




Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

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

Уравнение волны. Уравнение плоской гармонической волны. Волновое уравнение. Уравнение сферической волны Уравнением упругой волны называют функцию , которая определяет смещение любой частицы среды с координатами относительно своего положения равновесия в произвольный момент времени t...

Подкожное введение сывороток по методу Безредки. С целью предупреждения развития анафилактического шока и других аллергических реак­ций при введении иммунных сывороток используют метод Безредки для определения реакции больного на введение сыворотки...

Принципы и методы управления в таможенных органах Под принципами управления понимаются идеи, правила, основные положения и нормы поведения, которыми руководствуются общие, частные и организационно-технологические принципы...

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия