רשימה מקושרת של XOR – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
מאין תקציר עריכה
שורה 1:
'''רשימה מקושרת של XOR''' היא [[רשימה מקושרת]] דו כיוונית אשר מנצלת את פעולת ה[[XOR לוגי|XOR]] על מנת לחסוך בזיכרון. בזמן שברשימה מקושרת דו כיוונית רגילה נדרשים שני משתנים אשר מחזיקים את ה[[כתובות|כתובת]] של האיבר הקודם ושל האיבר הבא (כפי שמוצג בתרשים הבא):
 
[[תמונהקובץ:XorLinked1.png|שמאל|ממוזער|400px]]
 
ברשימה מקושרת של XOR, המידע של שני השדות שמורים במשתנה כתובת בודד, אשר שומר את ערך ה - XOR המתקבל מהכתובת הקודמת והכתובת הבאה בתור (כפי שמוצג בתרשים הבא):
 
[[תמונהקובץ:XORlinked2.png|שמאל|ממוזער|400px]]
 
לדוגמה, כאשר עוברים על הרשימה משמאל לימין, אם אנו נמצאים בתא B, אנו ניקח את הכתובת של התא הקודם - A - ונבצע עליו פעולת XOR יחד עם הערך שנמצא במשתנה בתא B. כתוצאה מהפעולה, נקבל את כתובת התא C ונוכל להמשיך לעבור על הרשימה. בדומה, אם נלך מהכיוון ההפוך, אנו ניקח את הכתובת של תא C ונפעיל עליו פעולת XOR יחד עם הערך שנמצא במשתנה בתא B, כדי לקבל את כתובת A.