Программа 24, с. 127           Кирсанов М.Н. Графы в Maple ,   М.: Физматлит 2007
Топологическая сортировка сети
| > | restart: with(networks): | 
| > | new(G):V:=$1..9: addvertex([V],G): | 
| > | E:=[[1,2],[1,3],[1,7],[2,7],[3,7],[4,1],[4,5],[4,8], | 
| > | [5,2],[5,3],[5,6],[6,7],[8,6],[8,3],[8,2],[9,1], | 
| > | [9,5],[9,7],[9,8]]:# Дуги | 
| > | addedge(E,G):draw(G);H:=duplicate(G): | 
| > | S0:=[]: | 
| > | while NV<>0 do | 
| > | S1:=[]: | 
| > | for v in vertices(G) do | 
| > | if indegree(v,G)=0 then | 
| > | S1:=[op(S1),v]; | 
| > | fi;#Множество вершин одного уровня | 
| > | od; | 
| > | if nops(S1)=0 then print("Сеть содержит контур"); break fi; | 
| > | S0:=[op(S0),S1];# Добавляем уровень | 
| > | delete(S1,G): # Удаляем вершины | 
| > | NV:=nops(vertices(G))# Число вершин | 
| > | od: | 
| > | S0; | 
| > | draw(Linear(op(S0)),H); |