נתונה הפעולה What הבאה:
נתונה הפעולה What הבאה:
public static int What(Node<int> ch){
int c = 0;
while(ch != null)
{
c++;
ch = ch.GetNext();
}
return c;
}
נתונה הפעולה Why המשתמשת בפעולה What:
public static bool Why(Node<int> ch1, Node<int> ch2) {
int len1 = What(ch1);
int len2 = What(ch2);
for(int i = 0; i < len1-len2; i++)
{
ch1 = ch1.GetNext();
}
while(ch1!=null)
{
if(ch1.GetValue() != ch2.GetValue())
return false;
ch1 = ch1.GetNext();
ch2 = ch2.GetNext();
}
return true;
}
שתי שרשרות החוליות ch1 ו-ch2:
- ch1: 10 → 7 → 14 → 5 → 7 → 2 → 4
- ch2: 5 → 7 → 1 → 4
סעיף א
מה מבצעת הפעולה?
סעיף ב
מה תחזיר הפעולה Why(ch1, ch2) עבור שתי שרשרות החוליות ch1 ו-ch2 שלמעלה? יש להראות מעקב אחרי ביצוע הפעולה Why. אין צורך במעקב אחרי What.
סעיף ג
תנו דוגמה של שרשרת ch3 באורך ארבע חוליות, באופן שבו זימון הפעולה Why(ch1, ch3) יחזיר ערך שונה מזה שהוחזר בסעיף ב'.
סעיף ד
תנו דוגמה של שרשרת ch4 באורך ארבע חוליות, באופן שבו זימון הפעולה Why(ch4, ch1) יחזיר ערך true. אם אי אפשר ליצור שרשרת כזאת, הסבירו למה.
סעיף ה
מה מבצעות הפעולות Why(ch1,ch2) ו- What(ch) באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.