Trong đồ thị lý thuyết một đang Prufer là một chuỗi duy nhất của số nguyên biểu thị một cây cụ thể.
Bạn có thể tìm thấy mã Prüfer của cây với thuật toán sau được lấy từ Wikipedia:
Hãy xem xét một cây có nhãn T với các đỉnh
{1, 2, ..., n}
. Ở bước i , loại bỏ chiếc lá có nhãn nhỏ nhất và đặt phần tử thứ i của chuỗi Prüfer là nhãn của hàng xóm của chiếc lá này.
(Lưu ý rằng vì nó là một chiếc lá nên nó sẽ chỉ có một hàng xóm).
Bạn nên dừng việc lặp lại khi chỉ còn hai đỉnh trong biểu đồ.
Bài tập
Cho một cây có nhãn là đầu ra đầu ra mã Prüfer của nó. Bạn có thể nhận đầu vào theo bất kỳ cách hợp lý. Chẳng hạn như ma trận kề hoặc biểu diễn biểu đồ dựng sẵn ngôn ngữ của bạn. ( Bạn không thể lấy đầu vào làm mã Prüfer ).
Đây là môn đánh gôn, vì vậy bạn nên cố gắng giảm thiểu các byte trong nguồn của mình.
Các trường hợp thử nghiệm
Dưới đây là một số đầu vào trong ASCII với đầu ra của chúng bên dưới. Bạn không cần phải hỗ trợ đầu vào ASCII như thế này.
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]]
cho trường hợp đầu tiên không? (tức là mỗi chi nhánh)