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

पेड़ के नोड्स की गणना करें जिनके भारित स्ट्रिंग में सी ++ में एक स्वर होता है

स्ट्रिंग के रूप में अपने नोड्स के वजन के साथ एक बाइनरी ट्री को देखते हुए। लक्ष्य उन नोड्स की संख्या का पता लगाना है जिनमें वजन होता है जैसे कि स्ट्रिंग में एक स्वर होता है। यदि वजन 'एयर' है तो इसमें स्वर 'ए' और 'ई' हैं, इसलिए नोड की गणना की जाएगी।

उदाहरण के लिए

इनपुट

मान डालने के बाद जो ट्री बनाया जाएगा वह नीचे दिया गया है -

पेड़ के नोड्स की गणना करें जिनके भारित स्ट्रिंग में सी ++ में एक स्वर होता है

आउटपुट

Count the nodes of the tree whose weighted string contains a vowel are: 5

स्पष्टीकरण

हमें ट्री नोड्स और प्रत्येक नोड से जुड़े स्ट्रिंग वेट दिए गए हैं। अब हम जांचते हैं कि नोड्स की स्ट्रिंग में स्वर हैं या नहीं।

<थेड> <थ>वजन
नोड स्वर हां/नहीं
2 एई हां
1 बीसीडी कोई स्वर नहीं नहीं
4 io मैं,ओ हां
3 जीएफई हां
8 tptpa a हां
9 आप i,o,u हां

इनपुट

मान डालने के बाद जो ट्री बनाया जाएगा वह नीचे दिया गया है -

पेड़ के नोड्स की गणना करें जिनके भारित स्ट्रिंग में सी ++ में एक स्वर होता है

आउटपुट

Count the nodes of the tree whose weighted string contains a vowel are: 3

स्पष्टीकरण

with the tree nodes and the string weights associated with each node. Now we check whether the string of nodes contains vowels or not.
<थेड> <थ>वजन
नोड स्वर हां/नहीं
2 ओएई o,a,e,i हां
1 एबीसीडी कोई स्वर नहीं नहीं
4 iio मैं,ओ हां
3 ggff कोई स्वर नहीं नहीं
8 आआ a हां

नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -

इस दृष्टिकोण में हम पेड़ के ग्राफ पर डीएफएस लागू करेंगे और जांचेंगे कि नोड के वजन में एक स्वर युक्त स्ट्रिंग है या नहीं। इस उद्देश्य के लिए दो वैक्टर Node_Weight(100) और edge_graph[100] लें।

  • नोड्स के भार के साथ Node_Weight[] प्रारंभ करें।

  • वेक्टर edge_graph का उपयोग करके एक ट्री बनाएं।

  • एक वैश्विक चर स्वर लें और इसे 0 से प्रारंभ करें।

  • फ़ंक्शन check(string check_it) s string लेता है और अगर check_it में एक स्वर होता है तो यह सही हो जाता है।

  • लंबाई लें =check_it.length() check_it में वर्णों की संख्या के रूप में।

  • इंडेक्स i=0 से i<लंबाई तक लूप के लिए ट्रैवर्स check_it का उपयोग करना।

  • प्रत्येक check_it[i] को लोअरकेस में कनवर्ट करें और c में संग्रहीत करें।

  • यदि c किसी भी स्वर के बराबर है ('a', 'e' 'i', 'o', 'u' ) तो सही लौटें और असत्य लौटाएं।

  • फ़ंक्शन string_vowel(int node, int root) एक पेड़ का नोड और रूट नोड लेता है और दिए गए पेड़ में नोड्स की गिनती देता है जिनके वजन में वर्ण के रूप में एक स्वर होता है।

  • str =Node_Weight [नोड] लें।

  • यदि चेक(str) सही है तो स्वर बढ़ाएँ।

  • लूप के लिए उपयोग कर वेक्टर edge_graph[नोड] में ट्रैवर्स ट्री।

  • वेक्टर में अगले नोड के लिए string_vowel(it, node) को कॉल करें।

  • सभी कार्यों के अंत में हमारे पास एक स्वर होगा, जिसमें स्वरों वाले भार वाले नोड्स की संख्या होगी।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
vector<string> Node_Weight(100);
vector<int> edge_graph[100];
int vowel = 0;
bool check(string check_it){
   int length = check_it.length();
   for(int i = 0; i <length; i++){
      char c = tolower(check_it[i]);
      if(c == 'a' ||c == 'e' ||c == 'i' ||c == 'o' ||c == 'u'){
         return true;
      }
   }
   return false;
}
void string_vowel(int node, int root){
   string str = Node_Weight[node];
   if(check(str)){
      vowel++;
   }
   for (int it : edge_graph[node]){
      if(it == root){
         continue;
      }
      string_vowel(it, node);
   }
}
int main(){
   //weight of the nodes
   Node_Weight[2] = "ae";
   Node_Weight[1] = "bcd";
   Node_Weight[4] = "io";
   Node_Weight[3] = "gfe";
   Node_Weight[8] = "tptpa";
   Node_Weight[9] = "iou";
   //create graph edge
   edge_graph[2].push_back(1);
   edge_graph[2].push_back(4);
   edge_graph[4].push_back(3);
   edge_graph[4].push_back(8);
   edge_graph[8].push_back(9);
   string_vowel(2, 2);
   cout<<"Count the nodes of the tree whose weighted string contains a vowel are: "<<vowel;
   return 0;
}

आउटपुट

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

Count the nodes of the tree whose weighted string contains a vowel are: 5

  1. सी ++ में बाइनरी ट्री में गैर-पत्ती नोड्स की गणना करें

    हमें एक बाइनरी ट्री दिया गया है और कार्य एक बाइनरी ट्री में उपलब्ध गैर-पत्ती नोड्स की गिनती की गणना करना है। बाइनरी ट्री एक विशेष डेटा संरचना है जिसका उपयोग डेटा भंडारण उद्देश्यों के लिए किया जाता है। एक बाइनरी ट्री की एक विशेष शर्त होती है कि प्रत्येक नोड में अधिकतम दो बच्चे हो सकते हैं। एक बाइनरी

  1. C++ में पूर्ण ट्री नोड्स की गणना करें

    मान लीजिए कि हमारे पास एक पूर्ण बाइनरी ट्री है, हमें नोड्स की संख्या गिननी है। तो अगर पेड़ जैसा है - तो आउटपुट 6 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे यह पुनरावर्ती दृष्टिकोण का उपयोग करेगा। यह विधि, countNodes() जड़ को तर्क के रूप में ले रही है। घंटा:=0 और एचएल:=0 रूट के रूप में

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

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