रिकर्सन
एक प्रक्रिया या कार्य में इसके भीतर दूसरी प्रक्रिया के लिए कॉल हो सकती है। समेत, सबरूटीन खुद को कॉल कर सकता है। इस मामले में, कंप्यूटर परवाह नहीं करता। साथ ही, हमेशा की तरह, वह उन आदेशों को लगातार निष्पादित करता है जो उसे ऊपर से नीचे तक मिलते हैं।
अगर आपको गणित याद है, तो आप
गणितीय आगमन के सिद्धांत से मिल सकते हैं। यह इस प्रकार है:
प्रत्येक प्राकृतिक
n if
के लिए कुछ कथन सत्य है
1. यह
n = 1
और
के लिए मान्य है
2. किसी भी मनमाना प्राकृतिक
n = k
के लिए कथन की वैधता से यह इस प्रकार है कि यह
n = k + 1.
के लिए सत्य है
प्रोग्रामिंग में, इस तकनीक को
पुनरावृत्ति कहा जाता है
रिकर्सन दिए गए सेट के आधार पर ऑब्जेक्ट के सेट को परिभाषित करने का एक तरीका है सरल आधार मामले।
रिकर्सिव एक प्रक्रिया (फ़ंक्शन) है जो स्वयं को सीधे या अन्य प्रक्रियाओं और कार्यों के माध्यम से कॉल करता है।
उदाहरण
<पूर्व>
<कोड> डीईएफ़ आरईसी (ए):
अगर (ए एंड जीटी; 0): आरईसी (ए -1)
प्रिंट (ए)
कोड>पूर्व>
आरेखीय रूप से, पुनरावर्तन के कार्य को फ़्लोचार्ट द्वारा प्रदर्शित किया जा सकता है
Rec() प्रक्रिया को पैरामीटर 3 के साथ निष्पादित किया जाता है। फिर, पैरामीटर 3 के साथ प्रक्रिया के अंदर, पैरामीटर 2 के साथ प्रक्रिया को कॉल किया जाता है, और इसी तरह, जब तक पैरामीटर 0 वाली प्रक्रिया को कॉल नहीं किया जाता है। जब पैरामीटर 0 वाली प्रक्रिया को कॉल किया जाता है, पुनरावर्ती कॉल अब नहीं होगी और पैरामीटर 0 वाली प्रक्रिया संख्या 0 को प्रिंट करेगी और बाहर निकल जाएगी। फिर नियंत्रण को पैरामीटर 1 के साथ प्रक्रिया में वापस स्थानांतरित कर दिया जाता है, यह नंबर 1 को प्रिंट करके अपना काम भी पूरा करता है, और इसी तरह। पैरामीटर 3 के साथ प्रक्रिया से पहले।
जब तक वे अपना काम पूरा नहीं कर लेते, तब तक सभी प्रक्रियाओं को स्मृति में संग्रहीत किया जाता है। समवर्ती प्रक्रियाओं की संख्या को
रिकर्सन डेप्थ
कहा जाता है।