बाइनरी ट्री को देखते हुए, प्रोग्राम को ट्री के विषम स्तरों पर नोड्स को प्रिंट करना चाहिए और बाइनरी ट्री के स्तर 1 से n तक शुरू होते हैं।
जैसा कि कुछ भी उल्लेख नहीं किया गया है, दो दृष्टिकोणों में से एक को लागू किया जा सकता है यानी रिकर्सन या पुनरावृत्ति।
चूंकि हम एक पुनरावर्ती दृष्टिकोण का उपयोग कर रहे हैं, प्रोग्राम एक फ़ंक्शन के लिए एक पुनरावर्ती कॉल करेगा जो विषम स्तरों पर नोड्स लाएगा और उन्हें वापस करेगा।
उपरोक्त बाइनरी ट्री में −
स्तर 1 पर नोड्स:स्तर 2:3 पर 10नोड्स और स्तर 3:140, 162, 100 और 146 पर 211नोड्स
तो, स्तर 1 और स्तर 3 पर नोड्स मुद्रित किए जाएंगे जिसका अर्थ है कि आउटपुट 10, 140, 162, 100 और 146 होगा।
एल्गोरिदम
स्टार्टस्टेप 1 -> स्ट्रक्चर नोड स्ट्रक्चर नोड के रूप में नोड की एक संरचना बनाएं *बाएं, *दाएं इंट डेटा एंडस्टेप 2 -> नोड नोड बनाने के लिए फ़ंक्शन * न्यूनोड (इंट डेटा) नोड-> डेटा =डेटा नोड-> बाएँ =नोड-> दाएँ =NULL; वापसी (नोड) चरण 3 -> विषम नोड्स को खोजने के लिए फ़ंक्शन बनाएं शून्य विषम (नोड * रूट, बूल इफोड =सत्य) IF रूट =NULL रिटर्न एंड अगर (ifodd) प्रिंट रूट-> डेटा एंड ऑड (रूट-> लेफ्ट, !ifodd) विषम (रूट-> दाएँ, !ifodd) चरण 4 -> मुख्य में () नोड * रूट =न्यूनोड (45) रूट-> लेफ्ट =न्यूनोड (23) कॉल ऑड (रूट) स्टॉप का उपयोग करके ट्री बनाएं।>उदाहरण
#includeनेमस्पेस std का उपयोग करके; struct Node{ int data; नोड * बाएं, * दाएं;}; शून्य विषम (नोड * रूट, बूल इफोड =सत्य) {अगर (रूट ==न्यूल) वापसी; अगर (ifodd) cout <<रूट-> डेटा <<""; ऑड (रूट-> लेफ्ट, !ifodd); ऑड (रूट-> राइट,! आईफोड);}// एक नया नोडनोड बनाने के लिए फ़ंक्शन * न्यूनोड (इंट डेटा) {नोड * नोड =नया नोड; नोड-> डेटा =डेटा; नोड-> लेफ्ट =नोड-> राइट =न्यूल; वापसी (नोड);} इंट मुख्य () {नोड * रूट =न्यूनोड (45); रूट-> लेफ्ट =न्यूनोड (23); रूट-> राइट =न्यूनोड (13); रूट-> लेफ्ट-> लेफ्ट =न्यूनोड (24); रूट-> लेफ्ट-> राइट =न्यूनोड (85); cout<<"\nodd नोड्स हैं"; विषम (रूट); वापसी 0;} आउटपुट
यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
विषम नोड 45 24 85. हैं