मैं एक पदानुक्रमित डेटा है कि इस तरह से चला जाता है है:पुनरावृत्ति के साथ या बिना एक गैर बाइनरी पेड़ कैसे बनाया जाए?
+----------------------+-------+
| name | depth |
+----------------------+-------+
| ELECTRONICS | 0 |
| TELEVISIONS | 1 |
| TUBE | 2 |
| LCD | 2 |
| PLASMA | 2 |
| PORTABLE ELECTRONICS | 1 |
| MP3 PLAYERS | 2 |
| FLASH | 3 |
| CD PLAYERS | 2 |
| 2 WAY RADIOS | 2 |
+----------------------+-------+
ट्यूब, एलसीडी और प्लाज्मा टीवी के बच्चे हैं। फ्लैश एमपी 3 प्लेयर का बच्चा है। एमपी 3 प्लेयर, सीडी प्लेयर और 2 वे रेडियोज़ पोर्टेबल इलेक्ट्रॉनिक्स के बच्चे हैं। आपको ड्रिल मिलता है।
अब, मेरे पास एक नोड है जिसमें एक नोड है जिसमें इसके आईडी और उसके बच्चे हैं, और इसी तरह, एक पेड़ बनाने के लिए। इस तरह:
struct Node
{
int id;
list<Node*> children;
}
प्रत्येक आइटम (, इलेक्ट्रॉनिक्स = 0, टीवी = 1 और इसी तरह) एक आईडी है, जो पंक्ति संख्या है द्वारा पहचाना जाता है, तो यह पता लगाने के लिए आसान है जो एक के बच्चे हैं नोड।
यह वह पेड़ है जिसे मैं बनाने की कोशिश कर रहा हूं। यह पेड़ बाइनरी नहीं है, जैसा कि आप देख सकते हैं। तो पुनरावृत्ति लागू करना एक आसान विचार की तरह प्रतीत नहीं होता है। यदि मैं गलत हूं तो मुझे सही करों।
तो मैं यह कैसे कर सकता हूं? मदद!
रिकर्सन इसे आसान बनाता है जहां आपके पास अन्वेषण करने के लिए 1 से अधिक पथ हैं। इस प्रकार 2 या अधिक शाखाएं रिकर्सन को आसान विकल्प बनाती हैं। वैकल्पिक दृष्टिकोण (पुनरावृत्ति) के लिए आपको अपनी प्रगति का मैन्युअल रूप से ट्रैक रखने की आवश्यकता होती है (यानी वह कार्य जो स्टैक रिकर्सिव संस्करण में कर रहा है)। लेकिन इस स्थिति के लिए रिकर्सन की आवश्यकता नहीं है। –