In der Graphentheorie ist ein Prüfer-Code eine eindeutige Folge von ganzen Zahlen, die einen bestimmten Baum bezeichnen.
Sie finden den Prüfer-Code eines Baumes mit dem folgenden Algorithmus aus Wikipedia:
Betrachten Sie einen beschrifteten Baum T mit Eckpunkten
{1, 2, ..., n}
. Entfernen Sie in Schritt i das Blatt mit der kleinsten Beschriftung und setzen Sie das i- te Element der Prüfer-Sequenz als Beschriftung des Nachbarn dieses Blattes.
(Da es sich um ein Blatt handelt, hat es nur einen Nachbarn).
Sie sollten die Iteration stoppen, wenn nur noch zwei Scheitelpunkte im Diagramm verbleiben.
Aufgabe
Bei einem beschrifteten Baum als Eingabe wird der Prüfer-Code ausgegeben. Sie können auf jede vernünftige Weise Eingaben machen. B. eine Adjazenzmatrix oder eine in Ihren Sprachen integrierte Diagrammdarstellung. ( Sie dürfen keine Eingabe als Prüfer-Code vornehmen ).
Dies ist Code-Golf, daher sollten Sie versuchen, die Bytes in Ihrer Quelle zu minimieren.
Testfälle
Hier sind einige Eingaben in ASCII mit ihren Ausgängen unten. Sie müssen solche ASCII-Eingaben nicht unterstützen.
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]]
für den ersten Fall betrachten? (dh jeder Zweig)