यदि आप स्टैक को बहुत अच्छी तरह से समझते हैं तो आप समझेंगे कि मेमोरी प्रोग्राम में कैसे काम करती है और यदि आप समझते हैं कि प्रोग्राम में मेमोरी कैसे काम करती है तो आप समझ पाएंगे कि प्रोग्राम में कैसे स्टोर होता है और यदि आप समझते हैं कि प्रोग्राम में फ़ंक्शन स्टोर कैसे होता है तो आप समझ पाएंगे कि रिकर्सिव फ़ंक्शन कैसे काम करता है और यदि आप समझते हैं कि पुनरावर्ती कार्य कैसे काम करता है आप समझेंगे कि संकलक कैसे काम करता है और यदि आप समझते हैं कि संकलक कैसे काम करता है तो आपका दिमाग संकलक के रूप में काम करेगा और आप किसी भी कार्यक्रम को बहुत आसानी से डीबग करेंगे
मुझे बताएं कि स्टैक कैसे काम करता है:
सबसे पहले आपको यह जानना होगा कि स्टैक में फ़ंक्शन स्टोर कैसे किया जाता है:
हीप स्टोर डायनेमिक मेमोरी एलोकेशन वैल्यू। स्टैक स्टोर स्वचालित आवंटन और विलोपन मान।
आइए उदाहरण के साथ समझते हैं:
def hello(x):
if x==1:
return "op"
else:
u=1
e=12
s=hello(x-1)
e+=1
print(s)
print(x)
u+=1
return e
hello(4)
अब इस कार्यक्रम के कुछ हिस्सों को समझें:
अब देखते हैं कि स्टैक क्या है और स्टैक पार्ट्स क्या हैं:
स्टैक का आवंटन:
एक बात याद रखें अगर किसी फंक्शन को "रिटर्न" मिलता है, तो कोई बात नहीं है कि उसने अपने सभी स्थानीय वेरिबल्स को लोड किया है या ऐसा कुछ भी है जो तुरंत स्टैक से वापस आ जाएगा, उसका स्टैक फ्रेम होगा। इसका मतलब यह है कि जब किसी भी पुनरावर्ती कार्य को आधार स्थिति मिलती है और हम आधार स्थिति के बाद वापसी करते हैं तो आधार स्थिति स्थानीय चर को लोड करने के लिए इंतजार नहीं करेगी जो "और" कार्यक्रम में स्थित हैं, यह तुरंत स्टैक से वर्तमान फ्रेम वापस कर देगा और अब अगर एक फ्रेम वापसी अगले फ्रेम सक्रियण रिकॉर्ड में है। इसे व्यावहारिक रूप में देखें:
ब्लॉक का निपटान:
इसलिए अब जब भी कोई फ़ंक्शन रिटर्न स्टेटमेंट पाता है तो वह स्टैक से करंट फ्रेम को हटा देता है।
स्टैक वैल्यू से लौटते समय रिवर्स ऑर्डर ऑफ ऑर्डर में वापस आ जाएगा जिसमें उन्हें स्टैक में आवंटित किया गया था।
ये बहुत ही संक्षिप्त विवरण हैं और यदि आप स्टैक के बारे में और अधिक गहराई से जानना चाहते हैं और इस ब्लॉग की दो पोस्ट पढ़ते हैं:
स्टेप स्टेप बाय स्टेप के बारे में अधिक
स्टैक के साथ कदम से दुगुनी पुनरावृत्ति के बारे में अधिक