Помогите пожалуйста!!!(задача на Pascal'е)
Доброго времени суток всем!!!
не пойму как мне алгоритм применить к задаче!!! ПОМОГИТЕ ПОЖАЛУЙСТА
вот и алгоритм:
3.3. Алгоритм поиска в ширину
Основная идея такого поиска – последовательный просмотр списков инцидентности вершин, смежных с данной. При поиске в ширину, попав в новую вершину, просматривают все смежные с ней непросмотренные вер-шины и заносит их в список, после чего эта вершина считается обработан-ной. Далее переходят в новую вершину, стоящую первой в списке необрабо-танных вершин. Иными словами, просмотр осуществляется по принципу очереди: чем раньше вершина просмотрена, тем раньше она будет обработа-на.
Сложность реализации алгоритма в том, что рекурсивные процедуры действуют по принципу стека, а не очереди. Поэтому в этом случае возможен только нерекурсивный вариант алгоритма
procedure BREADTH( v ) ;
begin ОЧЕРЕДЬ:=nil; {ОЧЕРЕДЬ – локальная структура }
ОЧЕРЕДЬ := v; NOWY[v]:= False;
while ОЧЕРЕДЬ <> nil do
begin p := ОЧЕРЕДЬ; write(p);
for u := СПИСОК[p] do
if NOWY[u] then
begin ОЧЕРЕДЬ := u;
NOWY[u]:= False
end
end
end;
Как мы уже говорили, основная программа отличается от соответствую-щей программы поиска в глубину только именем вызываемой во втором цикле процедуры.
А суть самой задачи такая:
ПЕРЕДВИНУТЬ мебель в комнате!!!условно это всё назовем так
1-стол
2-стул
3-шкаф
4-кресло
0-ничаво нету
изначальное расположение такое
1 2 3
2 0 4
необходимо поменять местами 3 и 4 и остальные предметы вернуть на своё же месте!!!
ЗЫ физмодель сделал!!!28 переприсваиваний!!!
ребят ну если не графами тогда как???просто очень срочно надо решить прогу!!!за мной не заржавеет!!!
|