HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Компонент связности графа
  #1  
Старый 16.09.2007, 11:30
LittelBlackAngel
Новичок
Регистрация: 15.09.2007
Сообщений: 2
С нами: 9817727

Репутация: 0
По умолчанию Компонент связности графа

Пожалуйста, посмотрите задачу. Просидела над ней все выходные, но поняла, что мне это не по силам.

Задача по теории графов. Рассчитать цикломатическое число для заданного графа.
Цикломатическое цисло = (ребра)-(вершины)+(компонент связности). Во этот самый компонент связности я не могу рассчитать. Может кто-нибудь писал такую прогу, пожалуйста, выложите ее полностью.

P.S. В инете нашла часть программы по подсчету компонента связности графа, но как-то не разобралась как ее вставить в общую программу...


Подсчет количества компонент связности
Задача. Определить количество компонент связности в заданном графе.

Рекурсивный алгоритм
Считаем, что граф задан матрицей смежности sm.

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

Алгоритм КомпСвяз-Рек
Совершить обход в глубину всех компонент связности графа, помечая вершины каждой из них отдельным номером.
Рекурсивная процедура обхода в глубину (прямого или обратного обхода) переберет все вершины, достижимые из начальной. Начальной вершиной для очередной компоненты связности может стать любая вершина, еще не отнесенная ни к какой другой компоненте связности (то есть еще не помеченная в массиве mark).

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

Реализация
procedure step (v: integer);
var j: integer;
begin
mark[v]:= k;
for j:=1 to N do
if (mark[j]=0)and(sm[v,j]<>0) then step(j);
end;

begin
...
for i:= 1 to N do mark[i]:=0;
k:= 0; {номер текущей компоненты связности}
for i:= 1 to N do
if mark[i]=0 then
begin inc(k);
step(i);
end;
...
end.


Пожалуйста, выложите программу целиком
 
Ответить с цитированием

  #2  
Старый 16.09.2007, 22:04
LittelBlackAngel
Новичок
Регистрация: 15.09.2007
Сообщений: 2
С нами: 9817727

Репутация: 0
По умолчанию

Пожалуйста!!! Хоть кто-нибудь!!!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HexEdit компонент для дельфи kair С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 0 21.03.2007 22:55
алгоритм топологической сортировки графа 4RN Болталка 6 16.03.2007 20:02
Microsoft опубликовала патч, который сильно усложнил использование ActiveX компонент D1mOn Мировые новости. Обсуждения. 9 03.04.2006 23:11



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...