stanford-oval/wikipedia huggingface dataset:
רשימה מקושרת
הגדרת רשימה מקושרת ופעולות בסיסיות > הוספת איבר

עלינו לדעת תחילה היכן ברצוננו להכניס את האיבר החדש, כלומר, אחרי איזה איבר יבוא האיבר החדש. לשם הפשטות, נניח שאנו רוצים להכניס איבר שנסמנו ב' בין שני איברים עוקבים שנסמנם א' ו-ג'. כעת תתבצע ההכנסה בשלושה שלבים פשוטים:
יצירת האיבר החדש, איבר ב'.
כיוון מצביע האיבר ב' אל עבר איבר ג'.
כיוון מצביע האיבר א' אל עבר האיבר ב'.
insert(Node node, Node newNode)
{
newNode.next <- node.next
node.next <- newNode
}
יש לשים לב לכך שסדר הפעולות הוא משמעותי, אם נכוון קודם את מצביע א' אל מצביע ב', נאבד את הקשר בין איבר א' לאיבר ג', ובעצם לכל שאר הרשימה.
כאשר נרצה להכניס את האיבר החדש לתחילת הרשימה (ובכך בעצם להופכו לאיבר הראשון), נצטרך לעדכן את המצביע firstNode, המורה מיהו האיבר הראשון ברשימה. כעת הליך ההכנסה יהיה:
יצירת האיבר החדש.
כיוון מצביע האיבר החדש אל עבר האיבר הראשון הקיים, שיהפוך עכשיו לאיבר השני ברשימה.
כיוון מצביע firstNode אל עבר האיבר החדש, שכעת יהיה האיבר הראשון ברשימה.
insertBeginning(List list, Node newNode)
{
newNode.next <- list.firstNode
list.firstNode <- newNode
}
הגדרת רשימה מקושרת ופעולות בסיסיות > הסרת איבר

כאשר ברצוננו להסיר איבר מסוים מהרשימה, נכנה את האיבר הבא אחריו ברשימה "האיבר הבא למוסר" ואת האיבר הקודם לו ברשימה "האיבר הקודם למוסר". כעת הליך ההסרה יתבצע בשני שלבים פשוטים:
כיוון מצביע האיבר הקודם למוסר אל עבר האיבר הבא למוסר.
מחיקת האיבר שברצוננו להסיר.
מכיוון שרשימה מקושרת היא רשימת איברים שבה כל איבר מצביע לאיבר הבא אחריו, במקרה שקיים איבר שאף אחד לא מצביע אליו, הוא למעשה אינו איבר באותה הרשימה. אין מונח של "חור" ברשימה, כך שמרגע ששינינו את המצביע של האיבר הקודם למוסר, האיבר שרצינו להסיר נעלם מן הרשימה. אם כן, השלב השני בפעולת ההסרה הוא למטרות ניקוי הזיכרון, אך למעשה מרגע שינוי המצביע ההסרה כבר בוצעה בהצלחה.
משום שברשימה מקושרת בגרסתה הקלאסית אין באפשרותנו לחזור אחורה לאיבר הקודם, אין לנו דרך מהירה ויעילה לדעת מיהו האיבר הקודם למוסר. נעדיף להסתכל על ההליך כולו כהסרת איבר הבא אחרי איבר, כלומר, ידוע לנו מראש מיהו האיבר הקודם למוסר וכעת אנו רוצים להסיר את האיבר הבא אחריו. דרך הסתכלות זו איננה מהווה התחמקות מהבעיה, שכן בפעמים רבות באמת ידוע לנו מיהו האיבר הקודם למוסר מראש, אם בשל תכנון נכון של המערכת שבנינו או משום שהאלגוריתם בו אנו משתמשים מספק אותו.
removeAfter(Node node)
{
obsoleteNode <- node.next
node.next <- node.next.next
destroy obsoleteNode
}
במקרה המיוחד בו נרצה למחוק את האיבר הראשון ברשימה, נצטרך לעדכן את המצביע firstNode, המורה מיהו האיבר הראשון ברשימה. כעת הליך ההסרה יהיה:
כיוון firstNode אל האיבר הבא לאיבר הראשון.
מחיקת האיבר הראשון.
removeBeginning(List list)
{
obsoleteNode <- list.firstNode
list.firstNode <- list.firstNode.next
destroy obsoleteNode
}
יש להיזהר ממקרה של רשימה ריקה, מקרה בו firstNode מצביע אל עבר Null. כזכור, Null אינו באמת איבר ברשימה אלא רק סימון האומר שמצביע זה אינו מצביע על איבר ברשימה. ניסיון לגשת לשדה next ב-Null יוביל לשגיאה. נהוג להניח שפעולה זו לא נעשית על רשימה ריקה, כלומר, בעת תכנות עלינו לוודא שהרשימה אינה ריקה לפני ביצוע פעולה זו.
הגדרת רשימה מקושרת ופעולות בסיסיות > חיפוש איבר

כאשר מדברים על חיפוש איבר ברשימה, הכוונה היא לחיפוש איבר המחזיק ערך מסוים. מה שמעניין הוא הערך ולא האיבר שכן, כפי שצוין קודם, מטרת האיבר היא בסך הכול שמירה על הערך ומתן גישה נוחה אליו. אם כן, בהנחה שאנו מחפשים ערך מבוקש יתנהל החיפוש בצורה הבאה:
התחלה מהאיבר הראשון ברשימה
כל עוד האיבר אינו Null,
אם ערך האיבר הוא ערך_מבוקש,
החזרת האיבר
מעבר לאיבר הבא ברשימה
החזרה שערך_מבוקש אינו קיים ברשימה.
בעת מימוש הפעולה בפועל, יש לשים לב לכמה נקודות:
עדיף שלא להגיע למצב בו אנו בודקים כעת את Null. הדבר עלול להביא לניסיון לגישה למקום Null בזיכרון, וזה בתורו יביא לשגיאה. עדיף לבדוק בכל פעם האם האיבר הבא איננו Null ורק אם זה המצב, להתקדם אליו.
אם אין ערבון לכך שערך מבוקש אכן נמצא ברשימה, יש לטפל במקרה בו הוא לא נמצא. דרך אחת לעשות זאת היא החזרת ערך שלא ייתכן שהיה מוחזר לו היינו מוצאים את האיבר, Null משמש ערך טוב למטרות אלו, משום שלו היינו מוצאים את האיבר היינו מחזירים את מקומו בזיכרון ו-Null אינו מקום תקני בזיכרון.
ניתן לתמצת את הקוד ולהכניס לתנאי הלולאה ("כל עוד...") גם את הבדיקה האם הערך הנוכחי הוא בעל הערך ערך_מבוקש. מצד שני, ניתן לבצע חיפושים מורכבים יותר, למשל לחפש את האיבר שערכו מקיים תנאים מסוימים כמו "ערכו של האיבר מתחלק בשמונה ללא שארית וגם האיבר הוא חזקה שלמה של 2", במקרה זה עדיף ולעיתים אף אין מנוס מלהשאיר את הבדיקות בגוף הלולאה.
search(List list, DataType data)
{
node <- list.firstNode
while node != Null
{
if node.data == data
return node
node <- node.next
}
return Null
}
הגדרת רשימה מקושרת ופעולות בסיסיות > מעבר סדרתי על איברי הרשימה

חיפוש איבר נעשה על ידי מעבר על כל האיברים עד אשר נמצא האיבר המתאים או שהגענו לסוף הרשימה. לעיתים לא נרצה להפסיק כאשר הגענו אל איבר מסוים, אלא נרצה להמשיך ולעבור על כל איברי הרשימה עד אשר הגענו לסופה. לרוב, נרצה לבצע פעולות מסוימות על האיברים תוך כדי המעבר. ההליך יראה כך:
התחלה באיבר הראשון ברשימה
כל עוד האיבר אינו Null,
ביצוע הפעילות המבוקשת על האיבר הנוכחי
מעבר לאיבר הבא ברשימה
function(List list, ...)
{
node <- list.firstNode
while node != null
{
(do something with node)
node <- node.next
}
}
שימו לב לשלוש הנקודות (...) שהוכנסו לאחר הפרמטר הראשון בפונקציה לעיל: בהתאם לפעילות הנדרשת על האיברים, הפונקציה עשויה להזדקק לפרמטרים שונים.
לרוב, הפעולה על האיבר תהיה קשורה למידע השמור בו אבל לעיתים הנתון כלל לא יעניין אותנו. דוגמה לכך היא הפונקציה הבאה המקבלת רשימה מקושרת והופכת את סדר איבריה.
inverseList(List list)
{
node <- list.firstNode
newNext <- Null
while node != Null
{
tmp <- node.next
node.next <- newNext
newNext <- node
node <- tmp
}
list.firstNode <- newNext // האיבר הראשון ברשימה הוא מי שקודם לכן היה האחרון
}
תכונות הרשימה המקושרת

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

יתרונותיה הבולטים של הרשימה המקושרת הם בתחום הוספת איבר והוצאת איבר מן הרשימה.
יתרון גדול של הרשימה המקושרת בא לידי ביטוי דווקא ברשימות מקושרות בהן ישנה חשיבות לסדר האיברים (רשימה מקושרת ממוינת למשל). בעת הכנסת איבר אנו חייבים להכניסו במקום מדויק. עקב המבנה הייחודי של הרשימה המקושרת, כל שנצטרך לעשות יהיה להכניס את האיבר במקום כלשהו בזיכרון המחשב, לכוון את מצביעו אל עבר האיבר שברצוננו שיבוא אחריו ברשימה ולכוון את מצביע האיבר שברצוננו שיבוא לפניו, אל עברו. מדובר בשתי פעולות קבועות שאינן תלויות במספר איברי הרשימה ולכן נאמר שיעילות זמן הריצה היא  \ O(1).
הוצאת איבר תתבצע בצורה דומה. נכוון את המצביע של האיבר הקודם לזה שאנו מוציאים כך שיצביע על האיבר הבא ואז נמחק את האיבר. שוב מדובר בפעולות קבועות ללא תלות במספר איברי הרשימה המקושרת ולכן גם כאן יעילות זמן הריצה  \ O(1).
לא נצטרך באף אחד מהמקרים לטפל בשאר איברי הרשימה המקושרת שכן הסדר ביניהם נשמר. לא קיימת תופעה של "חורים" ברשימה המקושרת כיוון שאין חשיבות למיקום אחסונם של האיברים, רק למצביעים.
עובדה זו היא יתרון גדול, בייחוד בהשוואה למבני נתונים כמו המערך בו נצטרך לסדר את האיברים לאחר הוצאת איבר מן האמצע, או לחלופין אם הוספנו יותר איברים ממה שציפינו, להקצות מקום חדש בזיכרון ולהעתיק אליו את כל האיברים הקיימים, פעולות הנמצאות בקשר ליניארי (ישר) עם איברי המערך ולכן יעילות זמן ריצתם  \ O(n).
תכונות הרשימה המקושרת > חסרונות

חסרונה הבולט של הרשימה המקושרת הוא בתחום הגישה לאיברים, או יותר נכון בתחום חיפוש האיברים.
עקב פיזור האיברים בכל רחבי זיכרון המחשב, כאשר נחפש איבר כלשהו נצטרך להתחיל מהאיבר הראשון ולהתקדם איבר אחד בכל פעם, עד אשר נגיע לאיבר המבוקש. כלומר, כל חיפוש יצרוך מאיתנו זמן ריצה  \ O(n). אפילו אם ברשותינו רשימה מקושרת ממוינת, לא נוכל להשתמש באלגוריתמי חיפוש מתוחכמים כמו חיפוש בינארי (ידוע גם כשיטת האריה במדבר). גם אם נדע במדויק את מספרו של האיבר אותו אנו מחפשים, עדיין לא נוכל להתחמק ממעבר על כל האיברים עד איבר זה.
חיסרון זה משמעותי ביותר. יש לזכור שאף על פי שפעולת ההכנסה וההוצאה של איברים ברשימה מקושרת יעילות מאוד, לרוב לפני נצטרך למצוא את המיקום המתאים להכנסה (בדרך-כלל למצוא את האיבר שאחריו אנו רוצים להכניס) או את האיבר אותו ברצוננו להסיר ולצורך כך נצטרך לבצע חיפוש. אמנם פעולת ההוצאה או ההכנסה של האיבר ייקחו רק  \ O(1), פעולת החיפוש תיקח  \ O(n) וזמן ריצת התהליך כולו יסתכם ב- \ O(n), בדיוק כפי שהיה לוקח לבצע פעולה דומה במערך.
חיסרון נוסף, אשר גם הוא קשור לעובדת היותם של האיברים מפוזרים בכל רחבי הזיכרון ובפרט הוא קשור להיעדר המקומיות (Locality) הנובע מכך. כידוע, גישה לזיכרון היא פעולה יקרה יחסית מבחינת זמן ריצה. מסיבה זו, בין היתר, בעת בקשת מידע מהזיכרון, נהוג להביא יותר מידע ממה שנדרש מתוך הנחה שקיימת סבירות גבוהה שבקרוב נזדקק למידע הנמצא בקרבת מקום. זהו עקרון המקומיות. כאשר המידע מובא מהזיכרון, הוא נשמר בזיכרון המטמון והגישה למידע השמור שם מהירה הרבה יותר. את החיסרון בהיעדר המקומיות ניתן להרגיש בעת ביצועה של פעולה שכיחה למדי, סריקה סדרתית של אברי הרשימה. סדר גודל זמן הריצה של סריקת האיברים ברשימת מקושרת זהה לסדר גודל זמן הריצה של אותה הפעולה במערך -  \ O(n), ההבדל הוא שבעוד שבמערך בכל קריאה מהזיכרון יובאו מספר נתונים, משום שכל הנתונים שמורים ברצף בזיכרון, אין ערובה לכך שזהו המצב ברשימה ובהחלט ייתכן שהאיברים שמורים במקומות רחוקים זה מזה. בשל סיבה זו, בעוד שבמערך נזדקק לגשת בפועל לזיכרון רק לעיתים רחוקות (כל גישה לזיכרון תביא לזיכרון המטמון מספר איברים), ברשימה מקושרת אנו עלולים למצוא את עצמנו ניגשים ל-RAM עבור כל איבר ומבחינה מעשית זמן הריצה יגדל בעשרות מונים. חיסרון זה עשוי להתבטא באופן דומה, אך ביתר שאת, כאשר נעשה שימוש בזיכרון וירטואלי, שהגישה אליו איטית אף יותר מהגישה ל-RAM.
תוספות ושיפורים אפשריים > עוגן/זקיף

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

רשימה מעגלית היא רשימה בה האיבר האחרון מצביע לאיבר הראשון. פתרון זה מאפשר בניית רשימה מקושרת באמצעות מבנה נתונים סטטי כך שגודל הרשימה אינו מוגבל על ידי גודל מבנה הנתונים והסיבוכיות אינה ניזוקה על ידי הצורך להזיז איברים בעת ההכנסה וההוצאה.
תוספות ושיפורים אפשריים > רשימה דו-כיוונית

ניתן להוסיף מצביע אל האיבר הקודם ברשימה וכך תהפוך הרשימה לרשימה מקושרת (משורשרת) דו-כיוונית. ברשימה המקושרת הקלאסית, בה מצביע רק לאיבר הבא ברשימה, הגעה אל האיבר הקודם ברשימה מתבצעת על ידי סריקה סדרתית של הרשימה ולכל איבר בדיקה האם האיבר הבא אחריו הוא אותו איבר שאנו מעוניינים למצוא את הקודם לו. שיטה זו דורשת זמן ריצה מסדר גודל  \ O(n), אנו עלולים לעבור על כל איברי הרשימה בכל פעם. בצורה זו, נוכל להגיע אל איברים הקרובים יותר לסוף הרשימה תוך זמן מהיר יותר - אם ברצוננו להגיע לאיבר האחד לפני האחרון למשל, נוכל לעשות זאת תוך פעולה אחת, על ידי חזרה אחורה איבר אחד מהאיבר האחרון, שאנו שומרים מצביע אליו, כאשר בשיטה הרגילה נצטרך לעבור על כל האיברים מתחילת הרשימה.
הערות שוליים

↑  רשימה מקושרת, ספר מאת פרדריק פ. מילר, אגנס ואן דום וג'ון מקברוסטר
↑  הגדרת רשימה מקושרת
↑  לא חייבים להוסיף מצביע נוסף כדי לשדרג את הרשימה המקושרת ל"רשימה מקושרת דו-כיוונית". ניתן להשיג את אותו אפקט בעזרת מצביע בודד בשיטת רשימה מקושרת של XOR. בהתאם לנסיבות, שיטה זו אינה בהכרח יעילה יותר.
| מבני נתונים |
| --- | --- | --- |
| מבנים מופשטים | רשימה • מחסנית • קבוצה • מולטי קבוצה • תור • דו-תור • תור עדיפויות • מילון • מחרוזת • איחוד קבוצות זרות |  |
| מימושים ליניאריים | מערך • מערך משונן • טבלת גיבוב • רשימה מקושרת • רשימת דילוגים • חוצץ |  |
| גרפים ועצים | ערימה  (בינארית • בינומית • פיבונאצ'י) • עץ חיפוש  (עץ אדום שחור • עץ 2-3 • עץ 2-3-4) • עץ סיפות • עץ B • עץ +B • עץ AVL • עץ Splay • עץ BSP • עץ kd • עץ R‏ • Trie • X-fast trie • טריי y מהיר• עץ WAVL |  |
| הסתברותיים | מסנן בלום |  |
| --- | --- |
בקרת זהויות :  GND: 4783888-7 
הכנסת איבר לרשימה מקושרת
הסרת איבר מרשימה מקושרת
רשימה מקושרת דו-כיוונית
נורברט פריי

| --- | --- |
אין תמונה חופשית
 לידה:  3 במרץ 1955 (בן 69) פרנקפורט, גרמניה המערבית 
 ענף מדעי:  היסטוריה עכשווית 
 מקום לימודים:  אוניברסיטת מינכן (1978)  בית הספר הגרמני לעיתונות 
 מוסדות:  אוניברסיטת פרידריך שילר (2005)  המכון למחקר מתקדם (2008–2009)  ניו סקול (2010–2011)  הרבעון להיסטוריה עכשווית (1987–1997)  המכון למחקר מתקדם בברלין (1995–1996)  המכון להיסטוריה עכשווית מינכן-ברלין (1979–1997)  אוניברסיטת רוהר בוכום (1997–2005)  מכון פריץ באואר  אוניברסיטת תל אביב 
 
נורברט פריי (בגרמנית: Norbert Frei; נולד ב-3 במרץ 1955 בפרנקפורט) הוא היסטוריון גרמני. הוא מחזיק בקתדרה להיסטוריה מודרנית ועכשווית באוניברסיטת ינה ומוביל את מרכז ינה להיסטוריה של המאה ה-20. הוא חקר כיצד החברה הגרמנית השלימה עם הנאציזם והרייך השלישי לאחר מלחמת העולם השנייה.
קריירה

מ-1973 עד 1978 למד היסטוריה מודרנית, מדעי המדינה ותקשורת במינכן, שם השלים לימודי עריכה בבית הספר הגרמני לעיתונאות. בשנת 1979 השלים דוקטורט על "הכיבוש הנציונל-סוציאליסטי של העיתונות המחוזית".
בין 1979 ל-1997 עבד כעוזר מחקר במכון להיסטוריה בת זמננו במינכן. מ-1987 היה חבר מערכת ברבעונים להיסטוריה עכשווית וערך סדרת גליונות רבעוניים. הוא היה באוניברסיטת הרווארד ב-1985 וב-1986, בזכות מלגת ג'ון קנדי.
לאחר שהותו באוניברסיטת בילפלד ב-1996, כתב מחקר על מדיניות עידן אדנאואר. ספרו בנושא היה Vergangenheitspolitik: Die Anfänge der Bundesrepublik und die NS-Vergangenheit ("פוליטיקה של העבר: תחילת הרפובליקה של גרמניה המערבית והעבר הנאצי"), שעסק בפוליטיקה של חנינה ושל שילוב נאצים במוסדות השלטון, הכלכלה, החברה והאקדמיה בגרמניה המערבית.
פריי הצטרף לאוניברסיטת רוהר בוכום בשנת 1997. בסמסטר קיץ 2005 לימד באוניברסיטת פרידריך שילר בינה. ב-1995 ו-1996 היה עמית עצמאי במכון למחקר מתקדם בברלין. ב-2008 ו-2009 היה חבר במכון למחקר מתקדם בפרינסטון, ניו ג'רזי. בשנת 2010/2011, לימד כפרופסור בקתדרת תיאודור הויס בבית הספר החדש למחקר חברתי בניו יורק. בסמסטר קיץ 2013 היה פרופסור אורח באוניברסיטה העברית בירושלים. בסמסטר קיץ 2019 היה פרופסור אורח בקתדרת גרדה הנקל במחלקה ללימודי גרמנית של אוניברסיטת סטנפורד.
פריי חבר במועצות מייעצות ובוועדות מדעיות. מ-1996 עד 2003 ושוב מאז 2018 עבד בוועדה המייעצת המדעית של מכון פריץ באואר בפרנקפורט. מאז 1999 הוא יושב ראש מועצת הנאמנים המדעית של קרן ההנצחות בוכנוואלד ודורה-מיטלבאו. משנת 2000 עד 2016 היה חבר במועצה המייעצת המדעית של המכון להיסטוריה גרמנית באוניברסיטת תל אביב. בין השנים 2005–2017 כיהן כיו"ר המועצה המייעצת המדעית של מרכז קובנר מינרווה להיסטוריה גרמנית באוניברסיטה העברית בירושלים. בשנים 1999 עד 2002 היה חבר בוועדה ההיסטורית העצמאית לחקר ההיסטוריה של ברטלסמן ברייך השלישי. בשנת 2011 נבחר כחבר באקדמיה הסכסונית למדעים ומדעי הרוח בלייפציג.
פרויקטי מחקר של פריי עסקו בשילומים בגרמניה ובישראל מאז 1952 ובהיסטוריה של קבוצת פליק ברייך השלישי. שניהם הסתיימו ב-2009.
בשנת 2005 מינה שר החוץ הגרמני יושקה פישר את פריי לוועדת ההיסטוריונים העצמאית של משרד החוץ, אשר בחנה את ההיסטוריה של שירות החוץ בתקופה הנאצית וטיפולו של משרד החוץ בעבר לאחר 1945. באוקטובר 2010 פרסמה הוועדה את ממצאיה בספר שכותרתו "המשרד והעבר", ולאחריו התקיים דיון שנוי במחלוקת.
פרויקטי מחקר מתמשכים שלו נוגעים להיסטוריה של החינוך הפוליטי ברפובליקה הפדרלית של גרמניה המערבית וגרמניה המאוחדת, ולהיסטוריה של גרמניה המזרחית (1970–2010). מאז 2012 פריי מוביל את קבוצת העבודה הבינתחומית "זכויות אדם במאה ה-20" של קרן פריץ תיסן, המפעילה גם את האתר "מקורות להיסטוריה של זכויות האדם".
פריי השתתף בדיונים היסטוריים עכשוויים רבים וניסה להעביר ממצאים מדעיים לציבור הרחב. מאז 2016 כתב טור ב-Suddeutsche Zeitung, עיתון יומי ארצי.
מחלוקת

בספרו מ-2000, "Standort-und Kommandanturbefehle des Konzentrationslagers Auschwitz 1940–1945" ("פקודות מחנה הריכוז אושוויץ, 1940–1945"), פרסם פריי אוסף מסמכים מארכיונים ממזרח אירופה. בשנת 2015, ימניים קיצוניים ומכחישי שואה כמו אורסולה הפרבק והנס פושל בחרו מידע מהספר כדי לטעון שהשואה לא התרחשה. בראיון ב-2015 בערוץ המיינסטרים הגרמני ARD, פריי הסביר שהספר מכיל שפע של מידע על מחנה הריכוז אושוויץ וגם על בירקנאו.
מיתוס הוורמאכט החף מפשעי מלחמה

ב-1997 חקר פריי כיצד נוצר מיתוס הוורמאכט החף מפשעי מלחמה באמצעות המדיניות הרשמית של ממשלת גרמניה המערבית בראשות קונרד אדנאואר. ספרו בנושא נקרא "Vergangenheitspolitik: Die Anfänge der Bundesrepublik und die NS-Vergangenheit" ("הפוליטיקה של חנינה ושילוב: גרמניה של אדנאואר והעבר הנאצי").
פריי כתב כי הדרישה הנרחבת לשחרור פושעי מלחמה נאצים לאחר מלחמת העולם השנייה הייתה הודאה עקיפה במעורבותה של החברה הגרמנית בנאציזם. הוא הוסיף כי משפטי פשעי המלחמה היו תזכורת כואבת לטבעו של הרייך השלישי שאנשים רגילים רבים הזדהו איתו. בהקשר זה, היה ביקוש עצום לשיקום תדמיתו של הוורמאכט.
לקריאה נוספת

Wette, Wolfram (2007). The Wehrmacht: History, Myth, Reality. Cambridge, Mass.: Harvard University Press. ISBN 9780674025776.
הערות שוליים

↑  "Lehrstuhl für Neuere und Neuste Geschichte". Prof. Dr. Norbert Frei (בגרמנית). Jena Center, University of Jena. Faculty of History. נבדק ב-16 באוגוסט 2019. {{cite web}}:  (עזרה)
↑  Arnold, Jörg (באפריל 2006). "Review". Frei, Norbert, 1945 und wir: Das Dritte Reich im Bewußtsein der Deutschen. H-Net Reviews. נבדק ב-16 באוגוסט 2019. {{cite web}}:  (עזרה)
↑  "Norbert Frei". John F. Kennedy Memorial Fellow & Visiting Scholar 1985-1986. The Minda de Gunzburg Center for European Studies at Harvard. 2019. נבדק ב-16 באוגוסט 2019. {{cite web}}:  (עזרה)
↑  "Professor Norbert Frei". ww2history.com. נבדק ב-16 באוגוסט 2019. {{cite web}}:  (עזרה)
↑  "Norbert Frei". PEOPLE. Stanford University, Division of Literatures, Cultures, and Languages. נבדק ב-16 באוגוסט 2019. {{cite web}}:  (עזרה)
↑  Mentel, Christian (2012). "Nationalsozialismus". Die Debatte um "Das Amt und die Vergangenheit" (בגרמנית). Bundeszentrale für politische Bildung (Federal agency for political education). נבדק ב-16 באוגוסט 2019. {{cite web}}:  (עזרה)
↑  "Unabhängige Historikerkommission (Independent History Commission)" (בגרמנית). German Government, Foreign Office (Ausweriges Amt). 2019. נבדק ב-16 באוגוסט 2019. {{cite web}}:  (עזרה)
↑  "Historikerkmomission". Web archive (WaybackMachine). German Foreign Office (Auswärtiges Amt). בספטמבר 2017. אורכב מ-המקור ב-2011-02-03. נבדק ב-16 באוגוסט 2019. {{cite web}}:  (עזרה)
↑  Frei, Norbert. "Kolumne von Norbert Frei". Süddeutsche Zeitung (בגרמנית). Süddeutsche Zeitung GmbH. נבדק ב-16 באוגוסט 2019. {{cite news}}:  (עזרה)
↑  Bongen, Robert (23 באפריל 2015). "Panorama". Da kann man eigentlich nur den Kopf schütteln (בגרמנית). Norddeutscher Rundfunk - ARD, 'Das Erste'. נבדק ב-16 באוגוסט 2019. {{cite web}}:  (עזרה)
↑  Wette 2007, p. 238.
↑  Wette 2007, pp. 240–241.
| --- | --- |
בקרת זהויות :  NLI: 987007261359605171  PLWABN: 9810665298405606  BnF: cb12026089w (data)  GND: 120944898  ISNI: 0000 0001 2147 4588  LCCN: n81016451  LNB: 000051123  NDL: 00466725  NKC: jn19990002410  NTA: 069222576  SELIBR: 255255  SUDOC: 02842252X  VIAF: 109643590   WorldCat (עם VIAF): 109643590
אשם תורם

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

לפי פקודת הנזיקין; "אשם הוא מעשהו או מחדלו של אדם שהם עוולה לפי פקודה זו, או שהם עוולה שיש בצידה נזק או שהן התרשלות שהזיקה לעצמו". פקודה זו נוסחה לפי ההגדרה המקבילה מן החוק האנגלי.
הגדרת האשם מתייחסת לשני חלקים. בחלק הראשון האשם מוגדר ככזה היוצר אחריות כאשר ההתייחסות הראשונית היא למזיק. החלק השני מתייחס למעשה או מחדל שהם התרשלות שהזיקה לאדם עצמו ולכן, הוא מתייחס בעיקר להתנהגות הניזוק. חלק זה, נוגע לאשם העצמי של הניזוק וההתנהגות הדרושה לקיומו הנה התרשלות. על-כן, מרכיב יסודי במשטר האשם העצמי התורם הוא יסוד הרשלנות. ההתרשלות, על פי הפקודה, נבחנת על פי מבחן אובייקטיבי חיצוני הוא מבחן האדם הסביר.
הגדרת ההתרשלות חלה על שני סוגי האשמים; האשם יוצר האחריות שבחלק הראשון, והאשם העצמי שבחלק השני. למרות זאת, קיים שוני בין הנסיבות בהם אדם מתרשל ובכך מביא נזק לאחר, לעומת אדם אשר נבחנת רמת הזהירות שלו כלפי עצמו ורכושו. בסוגיית האשם התורם, השאלה הנבחנת היא מידת הזהירות שאדם צריך לנהוג כלפי עצמו וכלפי רכושו (תוך בדיקת סבירות ההתנהלות), בעוד לגבי אשם יוצר אחריות הדגש הוא בבחינת ההתנהגות אל מול אדם אחר. קיים הבדל מהותי בנקודת המוצא, ושוני מהותי בתפקיד החברתי שממלאים מושגים אלו. השוני ביניהם מביא למסקנה כי ייתכן והאדם הסביר נוהג, וצריך היה לנהוג, ביתר זהירות כלפי אדם אחר מאשר כלפי עצמו.
בפועל, הופחתה רמת הזהירות הדרושה לשמירה עצמית לגבי ניזוקים מסוימים אשר המשפט ביקש להגן עליהם. שלושה סוגים שכאלו זכו ליחס מועדף; עובדים, ילדים ולקויי דעת.
במידה ומתקיים אשם עצמי בהתנהגות הניזוק, על מנת שיחול סעיף 68 נדרש כי אשם זה תרם לנזק העצמי. מכאן, כי יש צורך בקשר סיבתי בין ההתרשלות העצמית ובין הנזק שנגרם.
ההתפתחות ההיסטורית של האשם התורם במשפט המקובל

במאה ה-16 מושג הרשלנות כמקור לאחריות עשה את דרכו אל תוך המשפט המקובל. עם ההכרה ברשלנות כמקור להטלת אחריות התפתחה פרקטיקה שבה תובע אינו יכול לתבוע פיצויים כאשר הוא עצמו נהג ברשלנות. הדין במשפט המקובל היה, בהתאם לדוקטרינת אשם תורם כהגנה מוחלטת, כי אשמו התורם של הניזוק מעניק הגנה מלאה למזיק, וכך גם היה המצב המשפטי ששרר באנגליה ובארצות הברית עד לאמצע המאה ה-20.
עם זאת, לא כל אשם תורם נחשב כמספיק כדי לשלול את אחריות המזיק לנזקי התובע. בתי המשפט קבעו שרק אשם תורם שאירע בסמיכות להתרחשות הנזק הוא כזה אשר שולל את הפיצוי מהתובע.
עם תחילתה של המאה ה-20 החלה מתקפה על דוקטרינת האשם התורם כהגנה מוחלטת. בשנת 1908 הקונגרס של ארצות הברית חוקק את "חוק אחריות המעביד", אשר עסק בעובדי מסילות הרכבת. החוק קבע את העיקרון שמכונה היום אשם תורם כהגנה יחסית, בעקבותיו נחקקו חוקים נוספים שתמכו בעיקרון האשם התורם היחסי.
מדינות ארצות הברית החלו לנטוש את דוקטרינת האשם התורם כהגנה מוחלטת, והראשונה שבהן הייתה מיסיסיפי בשנת 1910 כאשר אימצה את שיטת האשם היחסי. שלוש שנים לאחר מכן מדינת נברסקה נקטה בשיטת אשם יחסי מרוככת יותר, ובשנת 1931 היה זה תורה של מדינת ויסקונסין. תהליך ההתנערות מהדוקטרינה נמשך וכיום רוב המדינות דחו לחלוטין את אשם תורם כהגנה מוחלטת. בשנת 1945, חוקק באנגליה חוק האשם התורם הנזיקי, המאפשר חלוקת אחריות במקרים של אשם תורם, בהתאם לדוקטרינת אשם תורם כהגנה יחסית.
נימוק

נימוקים שונים נתנו להגנת האשם התורם אך ההצדקה העיקרית שלו היא היותו "הרע במיעוטו". עם זאת, ישנם הטוענים, כמו גרי שוורץ, שמטרת הגנת האשם התורם אינה יעילות, אלא הגינות.
במשפט העברי

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

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

↑  פקודת הנזיקין [נוסח חדש] תשכ"ח-1968,§64. (להלן: פקודת הנזיקין).
↑  The law reform (contributory negligence) act, 1945,c28,145§. (להלן: The Law Reform).
↑  אנגלרד- דיני הנזיקין, עמ' 241.
↑  פקודת הנזיקין §35.
↑  תא (ת"א) 56522/04 הכשרת היישוב חברה לביטוח בע"מ נ' שלו ברוך, נבו 381 (2005).
↑  אהוד גוטל ויובל פרוקצ'יה, הניזוק הבלתי סביר: אשם תורם, הקטנת הנזק, ודיני הנזיקין, משפטים נ, 2020
↑  יובל פרוקצ'יה, על תרופות ותמריצים בדיני העבודה: אשם תורם, כללי סיבתיות ופיצויים עונשיים, משפטים נג
↑  אנגלרד - דיני הנזיקין, עמ' 247.
↑  אריאל פורת, אלכס שטיין, "דוקטרינת הנזק הראיתי: ההצדקות לאימוצה ויישומה", עיוני משפט כא (תשנ"ח), הערת שוליים 45
↑  אברהם שיינפלד (פרופ' נחום רקובר עורך), נזיקין, עמ' 274-275, בתוך סדרת חוק לישראל. הוצאת ספרית המשפט העברי; משרד המשפטים ומורשת המשפט בישראל, תשנ"ב-1991.
חוב ציבורי

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