में ग्राफ सिद्धांतएक Prüfer कोड है कि एक विशेष पेड़ को दर्शाता है पूर्णांकों का एक अनूठा अनुक्रम है।
आप विकिपीडिया से लिए गए निम्नलिखित एल्गोरिथ्म के साथ एक पेड़ का Prüfer कोड पा सकते हैं:
शीर्ष के साथ एक लेबल ट्री टी पर विचार करें
{1, 2, ..., n}
। चरण i पर , पत्ती को सबसे छोटे लेबल के साथ हटा दें और इस पत्ते के पड़ोसी के लेबल होने के लिए Prüfer अनुक्रम का i तत्व निर्धारित करें ।
(ध्यान दें कि यह एक पत्ता है क्योंकि इसमें केवल एक पड़ोसी होगा)।
ग्राफ़ में केवल दो कोने बने रहने पर आपको पुनरावृति को रोकना चाहिए।
कार्य
इनपुट आउटपुट के रूप में एक लेबल वाले पेड़ को देखते हुए उसका Prüfer कोड। आप किसी भी उचित तरीके से इनपुट ले सकते हैं। जैसे कि आसन्न मैट्रिक्स या आपकी भाषाओं में निर्मित ग्राफ प्रतिनिधित्व। ( आप एक इनपुट कोड के रूप में इनपुट नहीं ले सकते हैं )।
ये है कोड गोल्फ इसलिए आपको अपने स्रोत में बाइट्स को कम करने का लक्ष्य रखना चाहिए।
परीक्षण के मामलों
नीचे ASCII में उनके आउटपुट के साथ कुछ इनपुट दिए गए हैं। आपको इस तरह से ASCII इनपुट का समर्थन करने की आवश्यकता नहीं है।
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]]
पहले मामले के लिए इनपुट जैसा कुछ ले सकते हैं ? (यानी प्रत्येक शाखा)