ABA


"זקוק לעזרה בביטול רקורסיה"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15453 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15453
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   20:31   02.09.09   
אל הפורום  
  זקוק לעזרה בביטול רקורסיה  
 
   אהלן,קיבלתי משימה במבנה נתונים לבטל לכתוב תוכנית מסויימת ברקורסיה ולאחר מכן לבטל את הרקורסיה ולעשות את הקריאות באמצעות Stack שאני אנהל.
המבנה של הרקורסיה הוא כזה:

int func(int* a,int b,int c,int l)
if(something)//תנאי עצירה
then do something;
else
{
do something
a= func(a,b,c,l)//first recursive call
do some more things
if(something)
a=func(a,b,c,l)//second recursive call
else
a=func(a,b,c,l)//third recursive call
}
return value;


עכשיו יש לי מושג איך לנהל את המחסנית אבל אין לי ממש מושג איך לגשת לתרגיל עצמו ולנהל את הקריאות ומה לעשות.
אמרו לי שאת התנאי העצירה אני אמור להחליף ללולאת while שיש בה תנאי להתחיל לאגור קריאות,רק שאינני מצליח להבין איך ליישם את זה.
אשמח לכל פיסת עזרה ..תודה רבה!


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תשמע, זה הרבה פחות מפסאודו קוד מה שנתת ldan192  02.09.09 21:08 1
  מכתב. Deuce  03.09.09 04:09 2
     האמת שקיבלתי עזרה VeNom  03.09.09 09:36 3

       
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   21:08   02.09.09   
אל הפורום  
  1. תשמע, זה הרבה פחות מפסאודו קוד מה שנתת  
בתגובה להודעה מספר 0
 
שלחת 3 פעמים רקורסיה אבל אני לא יודע מה הערך של a, b, c, בין כל "do somthing" ככה שאי אפשר להמיר לאיטרציה אם לא יודעים בדיוק מה האיטרציה עושה

תן לפחות דוגמא קצת יותר קונקרטית למה שהחישוב בעצם יעשה.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   04:09   03.09.09   
אל הפורום  
  2. מכתב.  
בתגובה להודעה מספר 0
 
קריאה ראשונה תבצע על ידי:
כל עוד התנאי עצירה לא מתקיים תכניס למחסנית את func(a,b,c,l).
כעת אתה רוצה לבצע את הקריאה הרקורסיבית השנייה/השלישית (למרות שהייתי ממספר אותן באותו מיקום) אז כל עוד המחסנית לא ריקה, תעשה לה POP ו-IF SOMETHING אז תקרא ל-func(Stack.Pop,b,c,l) אחרת לקריאה השנייה (שאצלך הן אותו הדבר, כנראה הן לא צרכיות להיות כך).






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   09:36   03.09.09   
אל הפורום  
  3. האמת שקיבלתי עזרה  
בתגובה להודעה מספר 2
 
   ממישהו חיצוני.
הקריאות הם באמת לא כאלה..זה היה סתם להמחשה..
תודה לשניכם!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net