בדיחה-רקורסיבית (קוף,עץ)
{תוכנית המקבלת מבנה נתונים מופשט "קוף" ועץ בינארי "עץ"
התוכנית תשעשע את הקוראים החנונים ותרגורם לנורמאלים להרים גבה
לגבהים היסטרים! הפעולה תחזיר"אמת" אם הקוף הגיע לראש העץ
ו"שקר" אחרת.
שאלה: למה לא הצליח הקוף לטפס על העץ הבינארי?
הנחה: קוף מאותחל, עץ מאותחל ולא עץ ריק }
(0) התחל-עץ ---> עץ2
(1) אם לא עץ-ריק? (עץ), אזי:
(1.1) בנה-עץ (? , תע"י(עץ) , תע"ש(עץ) ) --->עץ2
(1.2) החלף-תע"ש (עץ2,עץ)
(1.3) החלף תע"ש (עץ2,עץ)
(1.4) קוף-עבור-שלב-אחד-שמאלה (קוף,עץ)
(1.5) אם עץ-ריק( תע"י(עץ) ) אזי:
(1.5.1) בדיחה-רקורסיבית (קוף,עץ2)
(1.5.2) קוף-עבור-שלב-אחד-ימינה (קוף,עץ)
(1.6) אחרת- קוף-עבור-שלב-אחד-שמאלה (קוף,עץ)
(1.7) קוף-חזור-שלב (קוף,עץ)
(1.8) החלף-תע"י (עץ,עץ)
(1.9) בדיחה-רקורסיבית (קוף,עץ)
(1.10) קוף-חזור-שלב (קוף,עץ)
(2) אם האם-קוף-ניצח (קוף,עץ) אזי,
החזר בדיחה-רקורסיבית (קוף,עץ)
(3) החזר האם-קוף-ניצח (קוף,עץ)
טיפוס הנתונים קוף:
פעולות:
1) האם-קוף-ניצח(קוף,עץ)
{הפעולה מחזירה "אמת" אם הקוף באב הקדמון של העץ ושקר אחרת,
הנחות: קוף ועץ מאותחלים.}
2) קוף-עבור-שלב-אחד-שמאלה (קוף,עץ)
{ הפעולה מעבירה את הקוף לתת העץ השמאלי של השורש בו נמצא הקוף
אם תת עץ זה ריק ישאר הקוף במקום. הנחות: קוף ועץ מאותחלים.}
3)קוף-עבור-שלב-אחד-ימינה (קוף,עץ)
{הפעולה מעבירה את הקוף לתת העץ הימיני של השורש בו נמצא הקוף
אם תת עץ זה ריק ישאר הקוף במקום.
הנחות: קוף ועץ מאותחלים.}
4)קוף-חזור-שלב (קוף,עץ)
{פעולה המחזירה את הקוף לאב השורש בו הוא נמצא. הנחות: קוף ועץ
מאותחלים}
5) התחל-קוף
{פעולה המחזירה קוף מאותחל, כלומר קוף בעל מספר סידורי אקראי
ללא כול חשיבות אבל נחמד שיש אותו, הנחנו: המספר הסידורי לא
שווה 1050.649 בגלל שזה מספר מעצבן וחסר חשיבות}
6) מקום-קוף (קוף)
{פעולה המחזירה את כתובת מקום הקוף}
הערה:
הפעולות:
- החלף-תע"י (T,new-tree)
- החלף-תע"ש (T,new-tree)
תחלפנה את תת העץ בתנאי שהוא עץ ריק, אם הוא אינו עץ ריק יוחזר
תת העץ למערכת ההפעלה ויוחלף בתת העץ המיועד להחלפה.
תשובת השאלה(בכתב סתרים):
ורזץ מב וקמכט מיצע פם ופק גדממ תבכס גאזלסכא צפזמו ונטחכו
בנא.
(רמז: מאוד קל לפתור את כתב הסתרים!!!)
עכשיו ראיתי שיש 128 כניסות ליצירה הזו, כמה אירוני :)
ועכשיו (הרבה זמן אחר כך) שמתי לב שיש 256 כניסות. |