का उपयोग कर बाइनरी (या मनमाने ढंग से) पेड़ पर एक पुनरावर्तक को कार्यान्वित करना, मैं बाइनरी पेड़ पर एक इटरेटर बनाना चाहता हूं ताकि लूप के लिए श्रेणी-आधारित उपयोग करने में सक्षम हो सकें। मैं समझता हूं कि मुझे पहले() और एंड() फ़ंक्शन को लागू करना चाहिए।सी ++ 11
शुरुआत शायद रूट को इंगित करना चाहिए। विनिर्देश के अनुसार, हालांकि, अंत() फ़ंक्शन "अंतिम वैध तत्व के बाद तत्व" लौटाता है। कौन सा तत्व (नोड) वह है? क्या कुछ "अमान्य" जगह को इंगित करना अवैध नहीं होगा?
दूसरी बात ऑपरेटर ++ है। पेड़ में "अगला" तत्व वापस करने का सबसे अच्छा तरीका क्या है? मुझे इस प्रोग्रामिंग के साथ शुरू करने के लिए बस कुछ सलाह चाहिए।
मैं अपने प्रश्न का विस्तार/विस्तार करना चाहता हूं *। क्या होगा यदि मैं एक पेड़ पर एक मनमानी धैर्य के साथ पुनरावृत्ति करना चाहता था? प्रत्येक नोड में बच्चों का वेक्टर होता है और शुरूआत() को "वास्तविक" रूट पर इंगित करने दें। मुझे अनन्य_प्टर के नोड्स को स्टोर करने के लिए इटरेटर क्लास के अंदर शायद कतार (पहले चौड़ाई के लिए) को लागू करना होगा, है ना? फिर, जब कतार खाली होती है तो मुझे पता चलेगा कि मैंने सभी नोड्स पारित किए हैं और इस प्रकार ओपेटर ++() कहा जाता है जब इस प्रकार TreeIterator (nullptr) लौटा देना चाहिए। क्या इस का कोई मतलब निकलता है? मैं इसे यथासंभव सरल और केवल पुनरावृत्ति के लिए चाहता हूं।
* या मुझे एक नया धागा बनाना चाहिए?
आपका 'अंत()' इटरेटर शायद कुछ प्रहरी मूल्य कि पेड़ में एक वास्तविक नोड नहीं है किया जा रहा है खत्म हो जाएगा। –