void traverse(Node* root)
{
queue<Node*> q;
Node* temp_node= root;
while(temp_node)
{
cout<<temp_node->value<<endl;
if(temp_node->left)
q.push(temp_node->left);
if(temp_node->right)
q.push(temp_node->right);
if(!q.empty())
{
temp_node = q.front();
q.pop();
}
else
temp_node = NULL;
}
}
उपरोक्त पोस्ट कोड मेरा लेवल ऑर्डर ट्रैवर्सल कोड है। यह कोड मेरे लिए ठीक काम करता है लेकिन एक चीज मुझे पसंद नहीं है मैं स्पष्ट रूप से temp_node = NULL
शुरू कर रहा हूं या मैं ब्रेक का उपयोग करता हूं। लेकिन यह मेरे लिए एक अच्छा कोड प्रतीत नहीं होता है।बाइनरी ट्री का स्तर ऑर्डर ट्रैवर्सल
क्या इससे कोई साफ कार्यान्वयन है या मैं इस कोड को बेहतर कैसे बना सकता हूं?
इंडेंट। – Potatoswatter
ओह, इसे आम तौर पर 'लेवल-ऑर्डर' भी नहीं कहा जाता है। इसे 'गहराई पहले' के विपरीत आमतौर पर 'चौड़ाई पहले' कहा जाता है। – Omnifarious
@ ओम्निफिरियस आईएमएचओ, 'लेवल ऑर्डर' 'चौड़ाई पहली खोज' (बीएफएस) शब्दावली से कहीं अधिक स्पष्ट और संक्षिप्त है। ट्रैवर्सिंग के दौरान बस स्तर से स्तर पर जाएं। जैसा लगता है उतना सरल! – RBT