נשלח בתאריך: 29 June 2009 בשעה 15:40 | | IP רשוּם
|
|
|
|
אני מבהיר ראשית, שאלה אינם שעורי-בית. אני מתקשה בפתרון, אשמח לעזרה. השאלה מוגדרת בשפת C. הנה השאלה:
נתון מבנה-הנתונים הבא:
קוד:
typedef struct E { int val; struct E *next; } node, *pnode; |
|
|
א. כתוב פונקציה בשם new המשתמשת ב-malloc כדי להזמין node חדש ומאתחלת את שדותיו בעזרת הארגומנטים של new.
הפונקציה מחזירה מצביע לשטח הזכרון החדש המאותחל.
ב. כתוב פונקציה רקורסיבית
המייצרת רשימה מעגלית כזאת:
ומחזירה מצביע לאיבר המחזיק את ערכו של מספר פיבונאצ'י ה-n-י. מומלץ להשתמש בפונקציה new מסעיף ב'.
לתזכורת, סדרת פיבונאצ'י מוגדרת כך:
fib(0) = fib(1) = 1
fib(n) = fib(n-1) + fib(n-2) לכל n>1.
הבהרות:
א. עבור newcircle(0) יוחזר
ב. עבור ארגומנט שלילי תחזיר הפונקציה את הערך NULL.
|