עבור לתוכן

מציאת גודל מחסנית ללא שינויה

Featured Replies

פורסם

שלום,

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

כמובן שיש להחזיר גם את המחסנית חזרה ללא שינוי בסוף..

פורסם

כמובן. תוציא מהמחסנית איבר אחד, תחשב את גודל המחסנית שנשארה לך (ע"י קריאה רקורסיבית) + 1, ותחזיר את האיבר שהוצאת.

מה שכן, זו טיפה רמאות, כי אתה כן משתמש כאן במחסנית - המחסנית של הקריאה לפונקציות.

פורסם

מה הכוונה "ללא שינויה" ?

אם אסור להשתמש בPOP - אז אתה בבעיה


int F(stack st)
{
if (st.isEmpty)
return 0;
else
{
int size;
a=st.pop();
size =1+ (F(st));
st.push(a);
return size;
}

מספר הערות לקוד :

1. זהו אינו הפתרון הרקורסיבי היעיל ביותר

2. יש פתרון לא רקורסיבי טוב יותר, אך דורש מחסנית זמנית (רוצה לומר אין דרך אחרת להימנע מהמחסנית הזמנית אלא רק בעזרת רקורסיה).

פורסם
  • מחבר

תודה חברים,

הפתרון נמצא.

פורסם

אתה מוזמן לחלוק אותו (אם זה לא הפתרון שהוצע כאן).

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים