i; • массив Num,
i;
• массив Num, Num[i] определяет новый номер вершины i;
• массив Stack, для хранения номеров вершин, в которые заходит нулевое количество дуг. Работа с массивом осуществляется по принципу стека;
• переменная nm, текущий номер вершины.
Суть алгоритма. Вершина i, имеющая нулевое значение NumIn, заносится в Stack, ей присваивается текущее значение nm(запоминается в Num), и изменяются значения элементов NumIn для всех вершин, связанных с i. Процесс продолжается до тех пор, пока Stack не пуст. Трассировка работы алгоритма для нашего примера приведена в таблице.
№ итерации NumIn Num Stack Nm
начальная [2,2,2,1,0,1] [0,0,0,0,0,0] [5] 0
1 [2,2,1,0,0,1] [0,0,0,0,1,0] [4] 1
2 [1,2,0,0,0,1] [0,0,0,2,1,0] [3] 2
3 [0,2,0,0,0,0] [0,0,3,2,1,0] [6,1] 3
4 [0,1,0,0,0,0] [0,0,3,2,1,4] [1] 4
5 [0,0,0,0,0,0] [5,0,3,2,1,4] [2] 5
6 [0,0,0,0,0,0] [5,6,3,2,1,4] [ ] 6
procedure Change_Num;
{A, Num - глобальные структуры данных}
var NumIn,Stack:array[1..N]
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа