אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2025 · קיץ מועד א · שאלה 3כל שאלות המבחן ←
עצים›עצים בינאריים

"עץ K־שמאלי" הוא עץ בינרי ובו כל מסלול משורש העץ לעלה כלשהו מכיל לכל היותר K קשתות הפונות שמאלה (כלומר מקסימום K בנים שמאליים).

שימו לב: ב"עץ K־שמאלי" ייתכן שאין שום מסלול המכיל K קשתות הפונות שמאלה (כלומר ייתכן שבכל אחד מן המסלולים יש פחות קשתות שמאליות מ־K). דוגמה: (בתרשים: עץ בינרי בן 8 צמתים. לשורש בן שמאלי ובן ימני. לבן השמאלי של השורש בן ימני יחיד, שהוא עלה. לבן הימני של השורש בן שמאלי ובן ימני; הבן הימני שלו הוא עלה, ולבן השמאלי שלו שני בנים שהם עלים. המסלול המקווקו: מהשורש לבנו הימני, משם לבנו השמאלי, ומשם לבנו השמאלי — קשת ימנית אחת ואחריה שתי קשתות שמאליות.) עץ זה אינו "עץ 1־שמאלי" כי בעץ יש מסלול שבו יש יותר מקשת אחת שמאלית (במסלול המקווקו יש שתי קשתות שמאליות). לעומת זאת, עץ זה הוא "עץ 2־שמאלי" כי אין בו מסלול שבו יותר משתי קשתות שמאליות (ובאותה מידה הוא גם "עץ 3־שמאלי", וגם "עץ 4־שמאלי" וכן הלאה).

סעיף א

סרטטו "עץ 1־שמאלי" (כלומר שבכל מסלול של העץ יש קשת שמאלית אחת לכל היותר), ובו 8 צמתים ומקסימום 4 רמות.

סעיף ב

כתבו פעולה חיצונית ששמה IsLeftK המקבלת עץ בינרי – root מטיפוס שלם שאינו ריק, וערך K שאינו שלילי, ומחזירה true אם העץ הוא "עץ K־שמאלי", ואם לא – היא מחזירה false .

public static bool IsLeftK (BinNode<int> root, int K)

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי