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

Алгоритмы на графах - C++

Восстановить пароль Регистрация
 
Vasal
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 55
07.12.2010, 17:38     Алгоритмы на графах #1
Помогите пожалуйста выполнить вот это вот задание:
a) Нарисовать матрицу смежности графа.
Б) Создать файл “graf.txt”.
в) Вставить промежуточную печать и выполнить трассировку программы,
чтобы увидеть обход графа в ширину.
На каждом шаге распечатывать массив меток и СД «очередь»
Вот листинг который прилагается к заданию
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
int i,j,k,p,cur;
int Start, N, M;
int main()
{int **Graf; // объявляем матрицу смежности
int *Label; // объявляем массив меток
int *FIFO; // объявляем СД очередь
ifstream input(“graf.txt);
2
input>>N>>M>>Start; // читаем из файла
Label= new int [N];
FIFO= new int [N];
Graf= new int * [N];
for(i=0;i<N;i++) {Graf[i]= new int [N];}
for(k=0;k<M;k++)
{input>>i>>j; // читаем номера смежных вершин
Graf[i][j]=1; // матрица смежности
}
for(i=0;i<M;i++){FIFO[i]=0;Label[i]=32767;}
p=0; // указатель на начало очереди
k=1; // указатель на конец очереди
FIFO[p]=Start;Label[Start]=0; while (p!=k) {
cur=FIFO[p]; p++; for(i=0;i<N;i++)
if(Graf[cur][i]==1 && Label[i]>Label[cur]+1)
{FIFO[k]=i; // выделяем очередную вершину из очереди
k++; // сдвигаем указатель начала на 1
Label[i]=Label[cur]+1; //помечаем вершину
}
}
// вывод результата
for(i=0;i<N;i++) cout<<Label[i]<<” ” ;
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2010, 17:38     Алгоритмы на графах
Посмотрите здесь:

C++ Циклические алгоритмы.
Циклические алгоритмы C++
C++ "Поиск путей на графах". С++
Вопросы о графах C++
C++ Алгоритмы на C++
Алгоритмы на графах C++
C++ Алгоритмы С++
Алгоритмы C++

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

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

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