का उपयोग किए बिना एक पुनरावर्ती फ़ंक्शन को पुनर्लेखन करना मैं एक सेटिंग में कुछ मौजूदा कोड को फिर से लिख रहा हूं जहां रिकर्सिव कॉल आसानी से कार्यान्वित नहीं किए जाते हैं और न ही वांछित हैं। (और फोरट्रान 77 में, अगर आपको पता होना चाहिए।) मैंने जरूरी कॉलों का ट्रैक रखने के लिए खरोंच से ढेर बनाने के बारे में सोचा है, लेकिन ऐसा लगता है कि यह बदमाश है, और मैं ऐसे मामलों में स्मृति को आवंटित नहीं करना चाहूंगा जहां पर रिकर्सन गहरा नहीं है। (मुझे विश्वास नहीं है कि फोरट्रान 77 या तो गतिशील सरणी आकार का समर्थन करता है।)रिकर्सन
एक सामान्य समाधान के लिए कोई अन्य सुझाव जो स्पष्ट रूप से रिकर्सिव फ़ंक्शन कैसे लेते हैं और इसे स्टैक पर स्थान बर्बाद किए बिना फिर से लिखते हैं?
बहुत धन्यवाद, पुरानी MCST
यदि यह शाखा नहीं है तो आप आमतौर पर इसे एक साधारण पाश में फिर से लिख सकते हैं। यदि यह शाखाएं आपको आमतौर पर एक स्टैक – CodesInChaos
@CodeInChaos की आवश्यकता होती है: एक रिकर्सिव फ़ंक्शन जो शाखा नहीं करता है, परिभाषा के अनुसार, कभी वापस नहीं आ जाएगा ... –
मान लीजिए कि मैंने शब्द शाखा का दुरुपयोग किया था। मेरा मतलब है कि खुद को कई बार कॉल करता है, इसलिए कॉल का ग्राफ शाखाओं के साथ एक पेड़ बन जाता है। और यह केवल मेरा अनुभव है और हमेशा सत्य नहीं है। – CodesInChaos