IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Поиск в ширину в графе
Aleks
сообщение 13.09.2005 7:01
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Помогите решить задачу
Напишите и используйте в программе процедуру поиска в ширину в графе, заданном списками инцидентности. Выведите на экран номера всех вершин в порядке очередности просмотра.

я не знаю с чего начать, посмотрел в "FAQ" но не смог разобраться
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Aleks
сообщение 15.09.2005 9:11
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


volvo спасибо за ссылку. Программа работает.

не мог бы ты мне объяснить назначение переменной lst, m (это код из твоей ссылке http://alex.fanshop.ru/articles/graphs.shtml), а то я переделал немного код (но не совсем понимаю их назначение: m[i] –> содержит для каждой вершины в памяти данные)
и еще вопрос как освободить память, не могу сообразить

Исходный код
const
maxraz=400;
type index=^list;
list= record
inf: word;
next: index;
end;
connection=array[1..maxraz] of index;
var
lst,m: connection;
.....

***Процедура создания графа в динамической памяти***}
procedure Make_Graph(mgsi: boolean);
label Er;
var
n: index;
i,j: word;
kolvo: longint;
spro: boolean;
begin
randomize;
for i:=1 to raz do begin
ver[i]:=random(1000);
end;
kolvo:=0;
for i:=1 to raz do begin
lst[i]:=nil;
for j:=1 to raz do begin
spro:=true;
if j=raz then goto Er;
if j=i then inc(j);
n:=nil;
n:=lst[j];
if lst[j]<>nil then
repeat
if n^.inf=ver[i] then spro:=false;
n:=n^.next;
until (n=nil) or (not(spro));
if (round(random)=1) and spro then
begin
new(m[i]); inc(kolvo);
m[i]^.inf:=ver[j];
m[i]^.next:=lst[i];
lst[i]:=m[i];
end;
Er:
end;
end;
writeln;
if mgsi then {ВЫВОД СВЯЗЕЙ ВЕРШИН}
for i:=1 to raz do {}
begin {}
write(ver[i],' '); {}
m[i]:=lst[i]; {}
if m[i]<>nil then {}
repeat {}
write(m[i]^.inf,'═'); {}
m[i]:=m[i]^.next; {}
until m[i]=nil; {}
writeln(' '); writeln; {}
end; {}
writeln('КОЛ-ВО РЕБЕР СОЗДАННОГО ГРАФА: ',kolvo);
end;
........


Сообщение отредактировано: volvo - 15.09.2005 11:14
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Aleks   Поиск в ширину в графе   13.09.2005 7:01
volvo   Вот тут глянь: http://alex.fanshop.ru/articles/gra...   13.09.2005 11:01
Aleks   я написал код для создания графа в реезультате... ...   14.09.2005 8:59
Guest   может ли быть, порядок очередности просмотра графа...   14.09.2005 12:07
volvo   Вот принцип поиска в ширину: Подобно тому как, сог...   14.09.2005 12:46
Aleks   volvo спасибо за ссылку. Программа работает. не м...   15.09.2005 9:11
volvo   Расшифровка - дальше в тексте программы: {указател...   15.09.2005 9:47
Aleks   как освободить память, не могу сообразить uses cr...   15.09.2005 10:29
volvo   А что, Mark/Release уже отменили? ;) Var p_sta...   15.09.2005 11:13
Aleks   Спасибо volvo, что бы я делал без тебя volvo не ...   15.09.2005 11:29
volvo   :D Делал бы сам ... Огрех или не огрех, но так...   15.09.2005 11:58
Aleks   Как организовать освобождение памяти не с помощью ...   4.10.2005 10:47
hiv   Вначале созавай динамические переменные с помощью ...   4.10.2005 10:53
volvo   Aleks, у тебя же создаются элементы mprocedure de...   4.10.2005 10:59
Aleks   Результат работы программы остается 64 б --526432 ...   4.10.2005 11:02
volvo   А ты проходил по программе в пошаговом режиме? У т...   4.10.2005 11:28
Aleks   может я ошибаюсь, но для m[i] вершины указываютс...   4.10.2005 12:23
volvo   Угу... Только вот компилятор тебя не понял, и удал...   4.10.2005 12:26
Aleks   а как процедура выводит связи с другими вершинами?...   4.10.2005 12:40
volvo   О !!! Меня посетила простая до невозмо...   4.10.2005 12:49
Aleks   работает благодарю за помощь   4.10.2005 12:57


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 26.07.2025 17:04
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"