16-10-2006, 11:47
|
|
|
|
חבר מתאריך: 15.08.06
הודעות: 465
|
|
קודם כל לא הגדרת פה שום מבנה STACK...אפשר להבין איך עשית את זה...ובכל מקרה אני לא רואה שהקצאת פה זיכרון לשום דבר, יהיה טוב אם תצרף את הגדרת STACK (אולי אתה עובד עם מחסנית סטטית, אם לא, מן הסתם הנ"ל זאת הבעיה)
אתה מממש מחסנית עם מערך, בכל מקרה...או שאתה מקצה סטטית ואז זה נורא לא גמיש, או שאתה מקצה דינמית וצריך לכתוב פונקציות "שחזור"....לא גמיש ולא נוח במיוחד,
אז את המחסנית תממש באמצעות רשימה מקושרת, כמו בנאדם, את המבנה של המחסנית תגדיר ככה
קוד:
typedef struct {
node *top;
} stack;
ואת טיפוס כל node כך
קוד:
typedef struct _node {
dataType data;
struct _node *next;
} node;
כאשר dataType
מכיל את כל מה שאתה רוצה...
בכל פעם תקצה זיכרון לנוד חדש ותעדכן את המצביעים. כך תוכל לטפל בזה כמו בנאדם..
לגבי יואב, סעיף 2 לא באמת משנה, כל עוד הזיכרון הדרוש מוקצה - זה פשוט יתחיל את ה"אינדקס" של המחסנית מ1 במקום מ0 (במידה והוא מממש אותה עם מערך)
_____________________________________
Any sufficiently advanced bug is indistinguishable from a feature
|