'מספר ראשוני' הוא מספר שהמתחלק רק בעצמו וב-1 (גם המספרים 1 ו-2 הם ראשוניים). לפניכם הפעולה החיצונית isPrime/IsPrime - אפשר להשתמש בפעולה בלי לממש אותה. חתימתה: Java - public static boolean isPrime (int num), C# - public static bool IsPrime (int num). הפעולה מחזירה true אם num הוא ראשוני, אחרת מחזירה false.
'מספר ראשוני' הוא מספר שהמתחלק רק בעצמו וב-1 (גם המספרים 1 ו-2 הם ראשוניים). לפניכם הפעולה החיצונית isPrime/IsPrime - אפשר להשתמש בפעולה בלי לממש אותה. חתימתה: Java - public static boolean isPrime (int num), C# - public static bool IsPrime (int num). הפעולה מחזירה true אם num הוא ראשוני, אחרת מחזירה false.
שלוש תוצאות אפשריות לתום addNodes(tr) עבור הערכים 5, 100, 100 (שתי אפשרויות שונות לפירוק 100).
tr(100)
├── 2
└── 50
tr(100)
├── 25
└── 4
tr(5) (עלה, ללא בנים - כי 5 ראשוני)
עץ הפירוק המלא שמתקבל מהפעלת what/What על עלה עם ערך 150 (חלק ב, נגזר מהאלגוריתם הרקורסיבי הנתון).
150
├── 2
└── 75
├── 3
└── 25
├── 5
└── 5
ממשו את הפעולה החיצונית שלפניכם. הפעולה מקבלת צומת ללא בנים (עלה) שערכו גדול מ-0. אם ערך הצומת הוא מספר ראשוני, הפעולה מחזירה false. אחרת, הפעולה מוסיפה לצומת שני בנים שהמכפלה של ערכיהם שווה לערך הצומת המקורי, והערך של כל אחד מהם גדול מ-1. לאחר ההוספה הפעולה מחזירה true.
public static bool AddNodes (BinNode<int> tr)
נתונה הפעולה החיצונית what/What שלפניכם (עוברת רקורסיבית: אם addNodes(tr) מחזירה true - קוראת לעצמה על tr.getLeft() ו-tr.getRight()). סרטטו את העץ כפי שייראה בתום הפעלת what/What עבור צומת tr - עלה ללא בנים - שערכו 150. יש להראות מעמיק.
הסבירו מה מבצעת הפעולה what/What.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.