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

C++ में व्यंजक में दिए गए उद्घाटन कोष्ठक के लिए समापन कोष्ठक का सूचकांक ज्ञात कीजिए

विचार करें कि हमारे पास कोष्ठक के साथ एक व्यंजक है। यदि एक प्रारंभिक कोष्ठक का सूचकांक दिया गया है, तो हमें उसका अंतिम अंत कोष्ठक ज्ञात करना होगा। तो अगर व्यंजक इस तरह है:(25*6+(88-32+(50/10)+20)), और ओपनिंग ब्रैकेट का इंडेक्स 6 है, तो क्लोजिंग ब्रैकेट 23 की स्थिति में होगा।

यहां हम इस समस्या को हल करने के लिए स्टैक डेटा-स्ट्रक्चर का उपयोग करेंगे। हम दिए गए इंडेक्स से एक्सप्रेशन को पार करेंगे, और ओपनिंग ब्रैकेट्स को पुश करना शुरू करेंगे, जब क्लोजिंग ब्रैकेट मिल जाता है, तो स्टैक से पॉप एलिमेंट, जब स्टैक खाली होता है, तो इंडेक्स वापस कर देते हैं।

उदाहरण

#include<iostream>
#include<stack>
using namespace std;
void getEndingBracketIndex(string exp, int index){
   int i;
   if(exp[index]!='('){
      cout << exp << "Closing bracket of parentheses started at " << index << " present at index -1\n";
      return;
   }
   stack <int> stk;
   for(i = index; i < exp.length(); i++){
      if(exp[i] == '(')
         stk.push(exp[i]);
      else if(exp[i] == ')'){
         stk.pop();
         if(stk.empty()){
            cout << exp << ", Closing bracket of parentheses started at " << index << " present at index " << i << "";
            return;
         }
      }
   }
   cout << exp << ", Closing bracket of parentheses started at " << index << " present at index -1";
}
int main() {
   getEndingBracketIndex("(25*6+(88-32+(50/10)+20))", 6);
}

आउटपुट

(25*6+(88-32+(50/10)+20)), Closing bracket of parentheses started at 6 present at index 23

  1. सी ++ में दिए गए बिंदुओं के सेट के लिए सरल बंद पथ खोजें

    विचार करें कि हमारे पास बिंदुओं का एक सेट है। हमें सभी बिंदुओं को कवर करते हुए एक सरल बंद रास्ता खोजना होगा। मान लीजिए कि बिंदु नीचे की तरह हैं, और अगली छवि उन बिंदुओं पर एक बंद पथ बना रही है। रास्ता पाने के लिए हमें इन चरणों का पालन करना होगा - नीचे बाएँ बिंदु को P के रूप में खोजें अन्य n

  1. जीनोम सॉर्ट के लिए सी ++ प्रोग्राम?

    यहां हम देखेंगे कि सूक्ति सॉर्ट कैसे काम करता है। यह एक और छँटाई एल्गोरिथ्म है। इस दृष्टिकोण में यदि सूची पहले से ही क्रमबद्ध है तो इसमें ओ (एन) समय लगेगा। तो सबसे अच्छा मामला समय जटिलता ओ (एन) है। लेकिन औसत मामला और सबसे खराब स्थिति जटिलता ओ (एन ^ 2) है। आइए अब इस छँटाई तकनीक के बारे में विचार प्रा

  1. सी ++ प्रोग्राम किसी दिए गए उपसर्ग अभिव्यक्ति के लिए एक अभिव्यक्ति वृक्ष का निर्माण करने के लिए

    एक्सप्रेशन ट्री मूल रूप से एक बाइनरी ट्री है जिसका उपयोग एक्सप्रेशन को दर्शाने के लिए किया जाता है। एक्सप्रेशन ट्री में, आंतरिक नोड्स ऑपरेटरों के अनुरूप होते हैं और प्रत्येक लीफ नोड ऑपरेंड के अनुरूप होते हैं। इन-ऑर्डर, प्री-ऑर्डर और पोस्ट-ऑर्डर ट्रैवर्सल में एक्सप्रेशन एक्सप्रेशन के लिए एक्सप्रेशन ट