Skip to content

Latest commit

 

History

History
48 lines (32 loc) · 1.42 KB

File metadata and controls

48 lines (32 loc) · 1.42 KB

📘 تعریف کلی — بازگشتی (Recursion) و پشته

بازگشت (Recursion) به برنامه‌ای گفته می‌شود که خودش را فراخوانی می‌کند تا مسئله‌ای حل شود.

پشته در بازگشت:

  • هر فراخوانی تابع در Call Stack ذخیره می‌شود
  • زمانی که فراخوانی داخلی تمام شد، کنترل به فراخوانی قبلی باز می‌گردد
  • بنابراین بازگشت نمایشی از کاربرد پشته در حافظه است

مثال مفهومی

محاسبه فاکتوریل n!:

factorial(3)
= 3 * factorial(2)
= 3 * (2 * factorial(1))
= 3 * (2 * (1 * factorial(0)))
= 3 * 2 * 1 * 1 = 6

هر فراخوانی در پشته سیستم نگه داشته می‌شود تا نتیجه برگشت داده شود.


🧠 توضیح مختصر

  1. هر فراخوانی تابع factorial روی پشته سیستم ذخیره می‌شود
  2. وقتی n <= 1 رسیدیم، بازگشت شروع می‌شود
  3. مقادیر مرحله به مرحله از پشته خارج می‌شوند و ضرب می‌شوند
  4. نمایش Entering و Returning نشان می‌دهد که چگونه پشته عمل می‌کند

🧪 مثال اجرا

./05_recursive_subroutines 3

خروجی نمونه:

6