ડો LLOYD: તમે જોઇ છે રિકર્ઝન પર વિડિઓ,
સમગ્ર પ્રક્રિયા હોય શકે છે થોડો જાદુઈ લાગતું હતું.
તે કેવી રીતે કામ કરે છે?
કાર્યો કેવી રીતે ખબર નથી કે તેઓ રાહ જુઓ અને અન્ય કિંમત માટે રાહ જરૂર
એક અલગ કાર્ય પરત અમે માંગો છો પરિણામ મેળવવા માટે ક્રમમાં કૉલ?
>> વેલ, આ કામ કરે છે કારણ કે છે કોલ સ્ટેક તરીકે ઓળખાય છે કંઈક છે.
તમે એક કાર્ય કૉલ ત્યારે, સિસ્ટમ મેમરી જગ્યા કોરે સુયોજિત કરે છે
તે કાર્ય માટે તેના કામ કરવા માટે.
અને અમે મેમરી આ હિસ્સામાં કૉલ કે દરેક કાર્ય માટે કોરે સુયોજિત કરવામાં આવી રહી છે
એક સ્ટેક ફ્રેમ અથવા કાર્ય ફ્રેમ પર ફોન કરો.
અને તમે અપેક્ષા શકે છે, આ સ્ટેક ફ્રેમ્સ
મેમરી સ્ટેક ભાગ પર રહે છે.
>> એક કરતાં વધુ કાર્ય સ્ટેક ફ્રેમ એક સમયે મેમરી અસ્તિત્વ ધરાવે છે.
મુખ્ય કાર્ય ચાલ કહે છે, તો અને ખસેડો દિશા કહે છે,
બધા ત્રણ વિધેયો ઓપન ફ્રેમ હોય છે.
પરંતુ તેઓ સક્રિય ફ્રેમ નથી બધા હોય છે.
આ ફ્રેમ સ્ટેક ગોઠવાય છે.
અને ના ફ્રેમ તાજેતરમાં કહેવાય
કાર્ય સ્ટેક ટોચ પર હંમેશા છે.
અને તે હંમેશા સક્રિય ફ્રેમ હોય છે.
ખરેખર માત્ર ક્યારેય ત્યાં એક છે એક સમયે સક્રિય છે કે કાર્ય.
તે સ્ટેક ટોચ પર એક છે.
>> જ્યારે કાર્ય અન્ય કહે છે કાર્ય, તે પ્રકારના વિરામ દબાવીને.
તે પ્રકારના રાહ જોઈ, પકડ પર છે.
અને અન્ય સ્ટેક ફ્રેમ દબાણ કરવામાં આવે છે તે ટોચ પર સ્ટેક પર.
અને તે સક્રિય ફ્રેમ બની જાય છે.
અને ફ્રેમ તરત જ તે રાહ જરૂર નીચે
તે ફરીથી સક્રિય ફ્રેમ હોય છે ત્યાં સુધી તે તેના કામ શરૂ કરી શકો છો તે પહેલાં.
જ્યારે એક કાર્ય છે સંપૂર્ણ અને તે પૂર્ણ થાય છે,
તેના ફ્રેમ બોલ સ્ટેક પોપ છે.
તે પરિભાષા છે.
અને ફ્રેમ તરત જ તે નીચે, હું માત્ર જણાવ્યું હતું કે,
નવી સક્રિય ફ્રેમ બની જાય છે.
>> અને તે અન્ય કાર્ય કહે તો, તે ફરીથી વિરામ રહ્યું છે.
તે નવા કાર્ય સ્ટેક ફ્રેમ કરશે સ્ટેક ટોચ પર દબાણ કરી.
તે તેના કામ કરવું પડશે.
તે બંધ પાછા પૉપ શકે છે.
અને અન્ય કાર્ય તેને નીચે ફરી શકે છે.
>> તેથી આપણે જોઈ, ફરીથી આ મારફતે જાઓ કારણદર્શી કાર્ય ના વિચાર પર
અમે વ્યાખ્યાયિત કે રિકર્ઝન વિડિઓ જોવા માટે
બરાબર કેવી રીતે આ પાછળ જાદુ ફરી યાદ આવવું પ્રક્રિયા થઈ રહી છે.
તેથી આ અમારા સમગ્ર ફાઇલ, અધિકાર છે?
અમે બે વ્યાખ્યાયિત મુખ્ય અને હકીકતમાં કાર્યો.
અને અમે આશા રાખી શકે છે, કોઈપણ સી કાર્યક્રમ ચાલે છે,
મુખ્ય પ્રથમ વાક્ય પર શરૂ કરવા માટે.
>> તેથી અમે મુખ્ય માટે એક નવી સ્ટેક ફ્રેમ બનાવો.
અને તે ચાલી શરૂ કરવા જઇ રહ્યું છે.
મુખ્ય કોલ્સ printf.
અને printf રહ્યું છે 5 કારણદર્શી છાપશે.
વેલ, તે ખબર નથી 5 શું કારણદર્શી છે
અને તેથી આ કોલ પહેલેથી જ છે બીજા કાર્ય કૉલ પર આધાર રાખીને.
તેથી મુખ્ય અધિકાર ત્યાં વિરામ રહ્યું છે.
હું રજા તેમ છું તેના , જમણી ત્યાં રંગ તીર
તે તરીકે જ રંગ જમણી બાજુ પર ફ્રેમ ગંજી,
મુખ્ય સ્થિર રહ્યું છે તે સૂચવવા માટે 5 કારણદર્શી કહેવામાં આવે છે અહીં છે.
>> તેથી 5 કારણદર્શી કહેવામાં આવે છે.
અને તે જ સમયે શરૂ કરવા જઈ રહ્યું છે કારણદર્શી કાર્ય પ્રારંભ.
તે એક પ્રશ્ન હું 1 થી સમાન છું પૂછે છે?
1 માટે સમાન 5?
ના, તેમજ.
તેથી તે નીચે જવા માટે જવાનું છે બીજું ભાગ રીટર્ન n વખત
n બાદ 1 કારણદર્શી.
ઠીક છે, ઠીક છે.
>> તેથી હવે, 5 કારણદર્શી છે બીજો એક કોલ પર આધાર રાખીને
પસાર, કારણદર્શી માટે પરિમાણ 4 છે.
અને તેથી કારણદર્શી 5 ફ્રેમ, લાલ ફ્રેમ કે,
અધિકાર ત્યાં સ્થિર રહ્યું છે તે લીટી હું સંકેત કર્યું
અને સમાપ્ત કરવા માટે 4 કારણદર્શી માટે રાહ તે પછી તો, તે શું કરવાની જરૂર છે
સક્રિય ફ્રેમ ફરીથી બની શકે છે.
>> તેથી 4 શરૂ થાય છે કારણદર્શી કારણદર્શી શરૂઆત.
1 માટે સમાન 4 છે?
ના, એટલે તે જ વસ્તુ કરવા જઇ રહ્યું છે.
તે બીજું શાખા નીચે જવા માટે ચાલે છે.
તે કોડ કે વાક્ય મેળવવા માટે ચાલી રહ્યું છે.
ઠીક છે, હું ચાર વખત પરત જઇ રહ્યો છું.
ઓહ, 3-- ના કારણદર્શી જેથી કારણદર્શી 4 3 અંતિમ કારણદર્શી પર આધાર રાખે છે.
>> અને તેથી તે 3 કારણદર્શી કૉલ કરવાની જરૂર છે.
અને તે તેમ મારફતે જાઓ છે ફરીથી એ જ પ્રક્રિયા.
તે મારફતે શરૂ થાય છે અહીં નહીં.
3 કારણદર્શી આધાર રાખે છે 1 કારણદર્શી પર.
2 શરૂ થાય છે તેથી કારણદર્શી, અહીં મળે છે.
તે 1 કારણદર્શી પર આધાર રાખે છે.
1 શરૂ થાય છે કારણદર્શી.
>> ઠીક છે.
તેથી હવે, અમે મળી રહ્યાં ક્યાંક રસપ્રદ છે, અધિકાર?
તેથી હવે, 1 માટે 1 સમાન છે.
અને તેથી અમે 1 આવો.
આ બિંદુએ, અમે પરત આવે છે.
આ કાર્ય થાય છે.
તે વર્તન છે is-- તે કરવા માટે બીજું કંઇ,
અને તેથી સ્ટેક ફ્રેમ માટે 1 કારણદર્શી બંધ પોપ્સ.
તે પૂર્ણ છે.
તે 1 ફર્યા.
અને હવે, 2 કારણદર્શી, જે ફ્રેમ તે નીચે તરત જ
સ્ટેક માં, સક્રિય ફ્રેમ બની જાય છે.
>> અને તેને પસંદ કરી શકો છો બરાબર તે બોલ બાકી છે.
તે કારણદર્શી માટે રાહ જોઈ રહ્યું છે 1 તેનું કામ સમાપ્ત કરવા માટે.
તે હવે સમાપ્ત થઈ ગઈ છે.
અને તેથી અહીં અમે હોય છે.
>> 1 ના કારણદર્શી 1 ની કિંમત પરત ફર્યા.
2 કરી શકો છો તેથી કારણદર્શી કહે છે 2 વખત 1 આવો.
તેના કામ હવે કરવામાં આવે છે.
તે કારણદર્શી 2 પરત છે 3, તેને માટે રાહ જોઈ હતી.
3 કારણદર્શી હવે ટોચ ફ્રેમ છે, સ્ટેક માં સક્રિય ફ્રેમ.
અને તેથી તે ઠીક છે, ઠીક છે, હું જાઉં છું, કહે છે 6 છે, જે 3 વખત 2, પાછા.
અને હું કે આપી જાઉં છું કારણદર્શી પાછા કદર
4 મારા માટે રાહ જોઈ રહ્યું છે, જે.
મે કરી લીધુ.
3 કારણદર્શી બોલ સ્ટેક પોપ્સ, અને 4 કારણદર્શી હવે સક્રિય ફ્રેમ હોય છે.
>> 4 ઠીક છે, હું 4 વખત પાછા જઈ રહ્યો છું, કહે છે છ વર્ષના હતા કે જે 3 કારણદર્શી.
તે કિંમત હતું કે 3 કારણદર્શી ફર્યા.
અને તેથી 4 વખત 6 થી 24 છે.
અને હું પાસ જાઉં છું પાછા કારણદર્શી
5 મારા માટે રાહ જોઈ રહ્યું છે, જે.
5 કારણદર્શી હવે સક્રિય ફ્રેમ હોય છે.
તે 5 વખત પરત ચાલી રહ્યું છે 4-- 5 ગુણ્યા 24, અથવા 120-- ના કારણદર્શી
અને તે કિંમત આપી પાછા છે, કે જે મુખ્ય
એક ખૂબ જ ધીરજથી રાહ જોઈ કરવામાં આવી સ્ટેક તળિયે લાંબા સમય.
>> તે શરૂ જ્યાં તે છે.
આ કોલ કર્યો હતો.
ઘણી બધી ફ્રેમ ટોચ પર લીધો હતો.
તે હવે પાછા સ્ટેક ટોચ પર છે.
તે સક્રિય ફ્રેમ છે.
તેથી મુખ્ય કિંમત મળી 120 પાછા 5 કારણદર્શી છે.
તે માટે રાહ જોઈ રહ્યું છે તે કિંમત છાપશે.
અને પછી તે થાય છે.
મુખ્ય કોડ વધુ રેખાઓ કોઈ છે.
તેથી મુખ્ય ફ્રેમ બંધ પૉપ સ્ટેક, અને અમે પૂર્ણ કરી રહ્યાં છો.
>> રિકર્ઝન કેવી રીતે કામ કરે છે અને તે છે.
કે સ્ટેક ફ્રેમ કેવી રીતે કામ કરે છે.
તે કાર્ય કોલ્સ તે પહેલાં થયું
ફક્ત વિરામ પર છે રાહ જોઈ અનુગામી કોલ્સ માટે
જેથી તેઓ સક્રિય બની શકે છે સમાપ્ત કરવા માટે ફ્રેમ અને તેઓ શું કરવાની જરૂર સમાપ્ત કરો.
>> હું ડો લોયડ છું.
આ CS50 છે.