İçinde grafik teorisiBir Prüfer kodu belirli ağacı gösterir tamsayılar benzersiz bir dizisidir.
Vikipedi'den alınan aşağıdaki algoritmaya sahip bir ağacın Prüfer kodunu bulabilirsiniz:
Köşeleri olan etiketli bir ağaç T'yi düşünün
{1, 2, ..., n}
. İ adımında , en küçük etikete sahip olan yaprağı çıkarın ve Prüfer dizisinin i . Elemanını bu yaprağın komşusunun etiketi olarak ayarlayın.
(Bir yaprak olduğu için sadece bir komşusu olacağını unutmayın).
Grafikte yalnızca iki köşe kaldığında yinelemeyi durdurmalısınız.
Görev
Girdi olarak etiketlenmiş bir ağaç verildiğinde Prüfer kodu. Girdiyi makul bir şekilde alabilirsiniz. Bitişiklik matrisi veya dillerinizde yerleşik grafik gösterimi gibi. ( Girişi Prüfer kodu olarak alamazsınız ).
Bu kod golf bu yüzden kaynağınızdaki baytları en aza indirmeyi hedeflemelisiniz.
Test senaryoları
ASCII'de bazı çıktılar aşağıda verilmiştir. ASCII girişini bu şekilde desteklemenize gerek yoktur.
3
|
1---2---4---6
|
5
{2,2,2,4}
1---4---3
|
5---2---6---7
|
8
{4,4,2,6,2,5}
5---1---4 6
| |
2---7---3
{1,1,2,7,3}
[[2,1],[2,3],[2,5],[2,4,6]]
İlk vaka için girişi girdi olarak alabilir miyiz ? (yani her şube)