כעיקרון...
כל מה שאת יכולה לעשות בעזרת לולאות את יכולה לעשות גם ברקורסיה אבל לא להפך. אחד השימושים היעילים שעולה לי כרגע בראש זה ריצה על עץ בינארי. אם את לא יודעת מה זה עץ בינארי אז בקצרה זה מבנה נתונים בעל יעילות חיפוש טובה יותר מאשר רשימה מקושרת. (שכמובן בדומה לרשימות מקושרות, גם העץ הבינארי משתמש בפוינטרים, פעם שאלת שאלה על שימושים של פוינטרים אז הנה עוד שימוש) בריצה על עץ בינארי זה מאוד יעיל להשתמש ברקורסיה. חוץ מהשימוש הזה אפשר לעשות את כל התרגילים המטופשים שמלמדים במיכללות כמו להפוך מחרוזת ברקורסיה, למצוא מספר גדול ביותר במערך וכו´ (אלה תרגילים שסתם נותנים על מנת להבין איך עובדת הרקורסיה ובלולאה רגילה זה הרבה יותר יעיל) כשקוראים לפונקציה אז בסוף הפונקציה מצביע הפקודה יודע לחזור לנקודה שממנה הוא התחיל איך זה קורה? בגלל שכתובת החזרה נשמרת במחסנית. אותו דבר ברקורסיה: כתובת החזרה נשמרת במחסנית ובסוף הקריאה מצביע הפקודה חוזר לנקודה האחרונה שעליה הצביעה (ושמורה במחסנית) זהו היתרון אך גם החסרון של הרקורסיה כי אם תקראי לרקורסיה בצורה שהיא תקרא לעצמה יותר מדי פעמים אז המחסנית תיגמר ואז יגמר הזיכרון ויתחילו בלאגנים הבנת? דוגמא לקריאה כזאת יכולה להיות כזאת: כתוב תכנית רקורסיבית שמקבלת אינדקס, ומחזירה את מספר הפיבונאצ´י שמתאים לאינדקס. ולתת פה את האיבר ה40 בסידרה בתור אינדקס. כאן הרקורסיה ממש נתקעה לי והייתי חייב לאתחל את המחשב (שהיה פנטיום 133). וכשנתתי לו את האיבר ה30 אז לקח לו 2 דקות עד שהוא החזיר לי תשובה. זהו אני מקווה שהסברתי את עצמי בצורה טובה. אם יש לך עוד שאלות אז תשאלי. יאיר