Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ प्रोग्रामिंग में एक पेड़ के विषम स्तरों पर नोड्स प्रिंट करें।

बाइनरी ट्री को देखते हुए, प्रोग्राम को ट्री के विषम स्तरों पर नोड्स को प्रिंट करना चाहिए और बाइनरी ट्री के स्तर 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
. हैं
  1. C++ प्रोग्रामिंग में बाइनरी ट्री में पहला सबसे छोटा रूट टू लीफ पाथ प्रिंट करें।

    बाइनरी ट्री को देखते हुए प्रोग्राम को दिए गए कई रास्तों में से रूट से लीफ तक के सबसे छोटे रास्ते का पता लगाना चाहिए। चूँकि हम पेड़ को बाएँ से दाएँ पार करते हैं, इसलिए यदि जड़ से पत्ती तक कई छोटे रास्ते हैं, तो प्रोग्राम पेड़ के बाईं ओर सबसे छोटा रास्ता सबसे पहले ट्रैवर्स करेगा। हम एक कतार का उपयोग

  1. C++ प्रोग्रामिंग में एक बाइनरी ट्री में सभी नोड्स के प्रिंट स्तर।

    बाइनरी ट्री को देखते हुए, कार्य 1 से n तक के नोड में संग्रहीत प्रत्येक कुंजी से जुड़े स्तर को प्रिंट करना है उपरोक्त पेड़ में, नोड्स हैं - 10 लेवल 13 पर और 211 लेवल 2140 पर, 162, 100 और 146 लेवल 3 पर कुंजी को देखते हुए प्रोग्राम को उस विशेष कुंजी के स्तर को प्रिंट करना होगा। उदाहरण एल्गोरिदम न

  1. C++ प्रोग्रामिंग में बाइनरी ट्री के प्रत्येक नोड में सेट बिट्स की संख्या प्रिंट करें।

    बाइनरी ट्री को देखते हुए, फ़ंक्शन नोड्स में संग्रहीत कुंजियों के बाइनरी मान उत्पन्न करेगा और फिर उस बाइनरी समकक्ष में सेट बिट्स(1) की संख्या लौटाएगा। उदाहरण बाइनरी ट्री जिसमें चाबियां होती हैं:10 3 211 140 162 100 और 146 कुंजी बाइनरी समकक्ष बिट्स (आउटपुट) सेट करें 10 1010 2 3 0011 2 211 1101