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

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

बाइनरी ट्री को देखते हुए, फ़ंक्शन नोड्स में संग्रहीत कुंजियों के बाइनरी मान उत्पन्न करेगा और फिर उस बाइनरी समकक्ष में सेट बिट्स(1) की संख्या लौटाएगा।

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

उदाहरण

बाइनरी ट्री जिसमें चाबियां होती हैं:10 3 211 140 162 100 और 146

<वें शैली ="पाठ-संरेखण:केंद्र;"> बिट्स (आउटपुट) सेट करें
कुंजी बाइनरी समकक्ष
10 1010 2
3 0011 2
211 11010011 5
140 10001100 3
162 10100010 3
100 1100100 3
146 10010010 3

यहां हम __builtin_popcount फ़ंक्शन का उपयोग कर रहे हैं

फ़ंक्शन प्रोटोटाइप इस प्रकार है -

int __builtin_popcount(unsigned int)

यह एक पूर्णांक में सेट बिट्स की संख्या देता है यानी पूर्णांक के द्विआधारी प्रतिनिधित्व में लोगों की संख्या।

एल्गोरिदम

START
Step 1 -> create a structure of a node as
   struct Node
      struct node *left, *right
      int data
   End
Step 2 -> function to create a node
   node* newnode(int data)
   node->data = data
   node->left = node->right = NULL;
   return (node)
Step 3 -> Create function for generating bits of a node data
   void bits(Node* root)
   IF root = NULL
      return
   print __builtin_popcount(root->data)
   bits(root->left)
   bits(root->right)
step 4 -> In main()
   create tree using Node* root = newnode(10)
   root->left = newnode(3)
   call bits(root)
STOP

उदाहरण

#include <bits/stdc++.h>
using namespace std;
// structure of a node
struct Node {
   int data;
   struct Node *left, *right;
};
//function to create a new node
Node* newnode(int data) {
   Node* node = new Node;
   node->data = data;
   node->left = node->right = NULL;
   return (node);
}
//function for finding out the node
void bits(Node* root){
   if (root == NULL)
   return;
   //__builtin_popcount counts the number of set bit of a current node
   cout << "bits in node " << root->data << " = " <<__builtin_popcount(root->data)<< "\n";
   bits(root->left);
   bits(root->right);
}
int main(){
   Node* root = newnode(10);
   root->left = newnode(3);
   root->left->left = newnode(140);
   root->left->right = newnode(162);
   root->right = newnode(211);
   root->right->left = newnode(100);
   root->right->right = newnode(146);
   bits(root);
   return 0;
}

आउटपुट

यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

bits in node 10 = 2
bits in node 3 = 2
bits in node 140 = 3
bits in node 162 = 3
bits in node 211 = 5
bits in node 100 = 3
bits in node 146 = 3

  1. C++ प्रोग्रामिंग में बाइनरी ट्री में पहला सबसे छोटा रूट टू लीफ पाथ प्रिंट करें।

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

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

    बाइनरी ट्री को देखते हुए, प्रोग्राम को ट्री के विषम स्तरों पर नोड्स को प्रिंट करना चाहिए और बाइनरी ट्री के स्तर 1 से n तक शुरू होते हैं। जैसा कि कुछ भी उल्लेख नहीं किया गया है, दो दृष्टिकोणों में से एक को लागू किया जा सकता है यानी रिकर्सन या पुनरावृत्ति। चूंकि हम एक पुनरावर्ती दृष्टिकोण का उपयोग क

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

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