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

डेटा संरचनाओं में टेल रिकर्सन

यहां हम देखेंगे कि टेल रिकर्सन क्या है। पूंछ रिकर्सन मूल रूप से फ़ंक्शन के अंतिम विवरण के रूप में पुनरावर्ती फ़ंक्शन का उपयोग कर रहा है। तो जब रिकर्सिव कॉल से वापस आने के बाद कुछ भी करने के लिए नहीं बचा है, तो इसे टेल रिकर्सन कहा जाता है। हम टेल रिकर्सन का एक उदाहरण देखेंगे।

उदाहरण

#include <iostream>
using namespace std;
void printN(int n){
   if(n < 0){
      return;
   }
   cout << n << " ";
   printN(n - 1);
}
int main() {
   printN(10);
}

आउटपुट

10 9 8 7 6 5 4 3 2 1 0

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

हम रिकर्सन का उपयोग करके फैक्टोरियल का उपयोग कर सकते हैं, लेकिन फ़ंक्शन पूंछ रिकर्सिव नहीं है। फैक्ट का मान (एन -1) तथ्य (एन) के अंदर प्रयोग किया जाता है।

long fact(int n){
   if(n <= 1)
      return 1;
   n * fact(n-1);
}

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

long fact(long n, long a){
   if(n == 0)
      return a;
   return fact(n-1, a*n);
}

  1. डेटा संरचनाओं में निकटता सूचियाँ

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

  1. डेटा संरचनाओं में न्यूनतम फैले हुए पेड़

    एक फैला हुआ पेड़ अप्रत्यक्ष ग्राफ़ का एक उपसमुच्चय है जिसमें सभी शीर्ष किनारों की न्यूनतम संख्या से जुड़े होते हैं। यदि सभी कोने एक ग्राफ में जुड़े हुए हैं, तो कम से कम एक फैले हुए पेड़ मौजूद हैं। ग्राफ़ में, एक से अधिक फैले हुए वृक्ष हो सकते हैं। न्यूनतम फैले हुए पेड़ एक न्यूनतम स्पैनिंग ट्री (MS

  1. डेटा संरचनाओं में बाइनरी ट्री प्रतिनिधित्व

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