נשלח בתאריך: 06 May 2011 בשעה 15:38 | | IP רשוּם
|
|
|
|
מחסנית זה טוב רק כשאינך צריך פעולת REDO הופכית, אם כן תצטרך 2 מחסניות וביצוע Push וPop , לא כ"כ יעיל.
מה שאני עשיתי, השתמשתי בוקטור לאחסון הנתונים ומספר שמצביע איזו פעולה היא הנוכחית. בעת שהמשתמש מבצע פעולה נוספת הוקטור גדל ואיתו המצביע. פעולת UNDO מסיגה את המצביע כך שיצביע על פעולה קודמת, וREDO מקדם אותו. זה הכל.
אם בוצעו מספר פעולות UNDO ואח"כ פעולה חדשה (לא REDO) מוחקים את כל הפעולות שאחרי הנוכחית, ומוסיפים את החדשה במקומם. אפשר לקבוע מספר נוסף שמציין את קיבולת המערך, ופשוט להקטין אותו למידה הרצויה. כל הפעולות שאח"כ 'יזדבלו'.
|