Программа 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); # Рисунок |