IntList עוטפת שרשרת Node<Integer>, add מוסיפה בראש (head insertion). what1 משווה מיקום-מול-מיקום מהראש ("קידומת משותפת"); what2 בודקת שכל ערך ב-this קיים איפשהו ב-list ("הכלה כקבוצה", בלי תלות בסדר או במיקום).
IntList עוטפת שרשרת Node<Integer>, add מוסיפה בראש (head insertion). what1 משווה מיקום-מול-מיקום מהראש ("קידומת משותפת"); what2 בודקת שכל ערך ב-this קיים איפשהו ב-list ("הכלה כקבוצה", בלי תלות בסדר או במיקום).
public class IntList {
private Node<int> head;
public IntList( ) {
head = null;
}
public void Add(int a) {
head = new Node<int> (a, head);
}
public override string ToString(){
string s = "{";
Node<int> h = head;
while(h.GetNext()!= null){
s += h.GetValue()+",";
h = h.GetNext();
}
return s + h.GetValue()+"}";
}
public bool What1 (IntList list) {
Node<int> h1 = head;
Node<int> h2 = list.head;
while ((h1 != null) && (h2 != null)) {
if (h1.GetValue()!= h2.GetValue())
return false;
h1 = h1.GetNext();
h2 = h2.GetNext();
}
return true;
}
public bool What2 (IntList list) {
Node<int> h1 = head;
while (h1 != null) {
bool found = false;
Node<int> h2 = list.head;
while ((h2 != null) && (!found)) {
if (h1.GetValue()== h2.GetValue())
found = true;
h2 = h2.GetNext();
}
if (!found)
return false;
h1 = h1.GetNext();
}
return true;
}
}
סעיף א
נתון קטע קוד של הפעולה main במחלקה Program: IntList testList = new IntList(); testList.Add(2); testList.Add(3); testList.Add(6); testList.Add(1); testList.Add(4); Console.WriteLine(testList); מהו הפלט של קטע הקוד (אין צורך במעקב מפורט)?
סעיף ב
בעבור העצם testList שנוצר בסעיף א', הביאו דוגמה של עצם אחר מטיפוס IntList בשם list, הכולל ארבעה איברים לפחות, כך ש:
- זימון testList.What1(list) יחזיר true והזימון testList.What2(list) יחזיר true. אם אי אפשר להביא דוגמה כזו, ציינו זאת והסבירו מדוע.
- זימון testList.What1(list) יחזיר true והזימון testList.What2(list) יחזיר false. אם אי אפשר להביא דוגמה כזו, ציינו זאת והסבירו מדוע.
- זימון testList.What1(list) יחזיר false והזימון testList.What2(list) יחזיר true. אם אי אפשר להביא דוגמה כזו, ציינו זאת והסבירו מדוע.
- זימון testList.What1(list) יחזיר false והזימון testList.What2(list) יחזיר false. אם אי אפשר להביא דוגמה כזו, ציינו זאת והסבירו מדוע.
סעיף ג
מה מבצעות הפעולות What1 ו-What2 באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.