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

'מספר ראשוני' הוא מספר שהמתחלק רק בעצמו וב-1 (גם המספרים 1 ו-2 הם ראשוניים). לפניכם הפעולה החיצונית isPrime - אפשר להשתמש בפעולה בלי לממש אותה. חתימתה: public static boolean isPrime (int num). הפעולה מחזירה true אם num הוא ראשוני, אחרת מחזירה false.

סעיף א

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

public static boolean addNodes (BinNode<Integer> tr)

סעיף ב

נתונה הפעולה החיצונית what שלפניכם (עוברת רקורסיבית: אם addNodes(tr) מחזירה true - קוראת לעצמה על tr.getLeft() ו-tr.getRight()). סרטטו את העץ כפי שייראה בתום הפעלת what עבור צומת tr - עלה ללא בנים - שערכו 150. יש להראות מעקב.

סעיף ג

הסבירו מה מבצעת הפעולה what.

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

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

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

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