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

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

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

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 के दो भाग होते हैं। वर्टेक्स, और एज। वर्टेक्स को सेट V द्वारा दर्शाया जाता है, और एज को सेट E के रूप में दर्शाया जाता है। तो ग्राफ नोटेशन G(V,E) है। आइए एक उदाहरण देखें त

  1. डेटा स्ट्रक्चर में न्यूनतम स्पैनिंग ट्री डेटा स्ट्रक्चर में न्यूनतम स्पैनिंग ट्री

    एक स्पैनिंग ट्री एक अनडायरेक्टेड ग्राफ का एक सबसेट है जिसमें सभी वर्टेक्स न्यूनतम संख्या में एज द्वारा जुड़े होते हैं।यदि ग्राफ में सभी वर्टेक्स जुड़े हुए हैं, तो कम से कम एक स्पैनिंग ट्री मौजूद होती है। एक ग्राफ में एक से अधिक स्पैनिंग ट्री मौजूद हो सकती हैं।न्यूनतम स्पैनिंग ट्रीएक न्यूनतम स्पैनिंग

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

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