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

C++ का उपयोग करके दी गई ऊंचाई वाले AVL ट्री में नोड्स की न्यूनतम संख्या।

समस्या कथन

AVL ट्री की ऊंचाई को देखते हुए, कार्य यह पता लगाना है कि पेड़ में कितने नोड्स हो सकते हैं।

If height = 0 then AVL tree can have one 1 node
If height = 5 then AVL tree can have minimum 20 nodes

एल्गोरिदम

AVL ट्री में, हमें हाइट बैलेंस प्रॉपर्टी को बनाए रखना होता है, यानी बाएं और दाएं सबट्री की ऊंचाई में अंतर प्रत्येक नोड के लिए -1, 0 या 1 से अधिक नहीं हो सकता है। इस गुण का उपयोग करके, हम नीचे पुनरावर्तन संबंध बना सकते हैं -

1. If height = 0 then return 1
2. If height = 1 then return 2
3. If height > 1 then return (1 + getMinAVLNodes(h – 1) + getMinAVLNodes(h – 2))

उदाहरण

#include <iostream>
using namespace std;
int getMinAVLNodes(int h){
   if (h < 0) {
      return 0;
   }
   if (h == 0 || h == 1) {
      return h + 1;
   }
   return 1 + getMinAVLNodes(h - 1) + getMinAVLNodes(h -2);
}
int main(){
   int h = 5;
   cout << "Minimum nodes for " << h << " height = " << getMinAVLNodes(h) << endl;
   return 0;
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है -

Minimum nodes for 5 height = 20

  1. C++ का उपयोग करके दो स्ट्रिंग्स को समान बनाने के लिए आवश्यक न्यूनतम संख्या में ऑपरेशन।

    समस्या कथन दो स्ट्रिंग्स str1 और str2 को देखते हुए, दोनों स्ट्रिंग्स में a और b अक्षर होते हैं। दोनों तार समान लंबाई के हैं। दोनों स्ट्रिंग्स में एक _ (रिक्त स्थान) है। कार्य निम्न कार्यों की न्यूनतम संख्या करके पहली स्ट्रिंग को दूसरी स्ट्रिंग में परिवर्तित करना है - यदि _ स्थिति I पर है तो _ को

  1. C++ का उपयोग करके N को 25 से विभाज्य बनाने के लिए आवश्यक दी गई चालों की न्यूनतम संख्या।

    समस्या कथन बिना अग्रणी शून्य के एक संख्या N दी गई है। कार्य N को 25 से विभाज्य बनाने के लिए आवश्यक न्यूनतम चालों को खोजना है। प्रत्येक चाल पर, कोई भी दो आसन्न अंकों को स्वैप कर सकता है और यह सुनिश्चित कर सकता है कि किसी भी समय संख्या में कोई अग्रणी शून्य नहीं होना चाहिए। यदि N को 25 से विभाज्य बनान

  1. C++ का प्रयोग करते हुए संख्या के गुणनखंडों का न्यूनतम योग ज्ञात कीजिए।

    यहां हम देखेंगे कि किसी दी गई संख्या के कारकों का न्यूनतम योग कैसे प्राप्त करें। मान लीजिए एक संख्या 12 है। हम इसे अलग-अलग तरीकों से गुणनखंडित कर सकते हैं - 12 =12 * 1 (12 + 1 =13) 12 =2 * 6 (2 + 6 =8) 12 =3 * 4 (3 + 4 =7) 12 =2 * 2 * 3 (2 + 2 + 3 =7) न्यूनतम योग 7 है। हम एक संख्या लेंगे और न्यून