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

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Кратчайший путь в графе
SeregaR1Val
сообщение 1.10.2008 9:26
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Серёга

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


Помогите пожалуйста с программкой:
"Поиск кратчайшего пути в графе методом полного перебора в ширину с использованием АТД очередь"
Сам алгоритм у меня есть, но ничего не знаю про АТД очередь, ни у кого нет примеров такой программы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 4.10.2008 19:32
Сообщение #2


Гость






Цитата
начала вылезать ошибка, не понимаю почему
Потому что надо быть более внимательным:
procedure step;
begin
queueinit(q);
queuepush(q, start);
While not queueEmpty(q) do begin
Current := queuepop(q);
Finished := Current = finish;
j := 1;
while j<=N do begin
if (M[Current,j] <> 0) and not visited(j, way) then begin
Way[j] := Current;
Finished:=(j = finish);
if not Finished then queuepush(q, j) // <--- Здесь и в оригинале было q.put(j), а не q.get
end;
inc(j);
end;
end;

// Label1 заполняется вот так:
Label1.Caption := IntToStr(finish);
i := finish;
while i <> start do begin
i := Way[i];
Label1.Caption := Label1.Caption + ' ' + IntToStr(i);
end;
end;
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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