Программа 21. c. 119 Кирсанов М.Н. Графы в Maple , М.: Физматлит 2007.
Распаковка кода Прюфера
| > | restart: with(networks): |
Код Прюфера
| > | P:=[2,3,12,8,4,3,2,6,9,5,6,10,14,15]: |
| > | n:=nops(P)+2:# Число вершин графа |
| > | N:={$ 1..n}: # Вспомогательное множество |
| > | i:=1: E:={}: # Пустое множество ребер |
| > | while i<(n-1) do |
| > | x1:=N minus convert(P,set); |
| > | E:=E union {{P[1],x1[1]}}: |
| > | N:=N minus {x1[1]};# Операция N* |
| > | P:=P[2..-1]; # Операция P* |
| > | i:=i+1; |
| > | end do: |
| > | E:=E union {N}: |
| > | new(G):n:=16: |
| > | r:=seq([seq(1+j+4*i,i=0..3)],j=0..3): |
| > | addvertex($ 1..n,G):# Вершины |
| > | addedge(E,G): # Ветви |
| > | draw(Linear(r),G); # Рисунок |