שאלה 6מבני נתונים2023 קיץ מועד אעצים בינארייםסה״כ 25 נק׳
הוספת בנים לצמתים ראשוניים בעץ
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
"מספר ראשוני" הוא מספר המתחלק רק בעצמו וב־1 (גם המספרים 1 ו־2 הם ראשוניים).
לפניכם הפעולה החיצונית isPrime. אפשר להשתמש בפעולה בלי לממש אותה.
java
1publicstaticboolean isPrime (int num)
הפעולה מחזירה true אם הערך num שהתקבל הוא מספר ראשוני, אחרת היא מחזירה false.
משימות
אמשימה א
מימוש34%
ממשו את הפעולה החיצונית שלפניכם:
public static boolean addNodes (BinNode<Integer> tr)
הפעולה מקבלת צומת ללא בנים (עלֶה) שערכו גדול מ־ 0. אם ערך הצומת הוא מספר ראשוני, הפעולה מחזירה false.
אחרת, הפעולה מוסיפה לצומת שני בנים שערך המכפלה שלהם שווה לערך הצומת, והערך של כל אחד מהם גדול מ־ 1.
לאחר ההוספה הפעולה מחזירה true.
✎ דוגמאות
בתום הפעולה הצמתים יכולים להיראות כך (עבור הערכים 5, 100, 100):
tr -> 5 (ללא בנים)tr -> 100, בן שמאלי 25, בן ימני 4tr -> 100, בן שמאלי 2, בן ימני 50
ב(1)משימה ב(1)
תרשים33%
נתונה הפעולה what שלפניכם, המקבלת צומת ללא בנים שערכו גדול מ־ 0.
java
1publicstaticvoid what (BinNode<Integer> tr){2if(addNodes (tr)){3 what (tr.getLeft());4 what (tr.getRight());5}6}
סרטטו את העץ כפי שהוא ייראה בתום הפעולה what עבור צומת ללא בנים - tr שערכו 150. יש להראות מעקב.
ב(2)משימה ב(2)
הסבר33%
הסבירו מה מבצעת הפעולה what.
שפת התכנות שלי
שאלה 6מבני נתונים2023 קיץ מועד אעצים בינארייםסה״כ 25 נק׳
הוספת בנים לצמתים ראשוניים בעץ
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
"מספר ראשוני" הוא מספר המתחלק רק בעצמו וב־1 (גם המספרים 1 ו־2 הם ראשוניים).
לפניכם הפעולה החיצונית isPrime. אפשר להשתמש בפעולה בלי לממש אותה.
java
1publicstaticboolean isPrime (int num)
הפעולה מחזירה true אם הערך num שהתקבל הוא מספר ראשוני, אחרת היא מחזירה false.
משימות
אמשימה א
מימוש34%
ממשו את הפעולה החיצונית שלפניכם:
public static boolean addNodes (BinNode<Integer> tr)
הפעולה מקבלת צומת ללא בנים (עלֶה) שערכו גדול מ־ 0. אם ערך הצומת הוא מספר ראשוני, הפעולה מחזירה false.
אחרת, הפעולה מוסיפה לצומת שני בנים שערך המכפלה שלהם שווה לערך הצומת, והערך של כל אחד מהם גדול מ־ 1.
לאחר ההוספה הפעולה מחזירה true.
✎ דוגמאות
בתום הפעולה הצמתים יכולים להיראות כך (עבור הערכים 5, 100, 100):
tr -> 5 (ללא בנים)tr -> 100, בן שמאלי 25, בן ימני 4tr -> 100, בן שמאלי 2, בן ימני 50
ב(1)משימה ב(1)
תרשים33%
נתונה הפעולה what שלפניכם, המקבלת צומת ללא בנים שערכו גדול מ־ 0.
java
1publicstaticvoid what (BinNode<Integer> tr){2if(addNodes (tr)){3 what (tr.getLeft());4 what (tr.getRight());5}6}
סרטטו את העץ כפי שהוא ייראה בתום הפעולה what עבור צומת ללא בנים - tr שערכו 150. יש להראות מעקב.