FillChar(St,SizeOf(St),0);


FillChar(St,SizeOf(St),0); yk:=0; Inc(yk);St[yk]:=v;Nnew[v]:=false; while yk<>0 do begin {пока стек не пуст} t:=St[yk]; {выбор “самой верхней“ вершины из стека} j:=0;pp:=false; repeat if (A[t,j+1] <>0) and Nnew[j+1] then pp:=true else Inc(j); until pp or (j>=N); {найдена новая вершина или все вершины, связанные с данной вершиной, просмотрены} if pp then begin Inc(yk);St[yk]:=j+1;Nnew[j+1]:=false;{добавляем в стек} end else Dec(yk); {“убираем” вершину из стека} end; end; 3.2.2. Поиск в ширину Идея метода. Суть (в сжатой формулировке) заключается в том, чтобы рассмотреть все вершины, связанные с текущей. Принцип выбора следующей вершины - выбирается та, которая была раньше рассмотрена. Для реализации данного принципа необходима структура данных “очередь”. Пример. Исходный граф на левом рисунке. На правом рисунке рядом с вершинами в скобках указана очередность просмотра вершин графа. Приведем процедуру реализации данного
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz