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<Integer> head;
public IntList( ) {
head = null;
}
public void add(int a) {
head = new Node<Integer> (a, head);
}
public String toString(){
String s = "{";
Node<Integer> h = head;
while(h.getNext()!= null){
s += h.getValue()+",";
h = h.getNext();
}
return s + h.getValue()+"}";
}
public boolean what1 (IntList list) {
Node<Integer> h1 = head;
Node<Integer> h2 = list.head;
while ((h1 != null) && (h2 != null)) {
if (h1.getValue()!= h2.getValue())
return false;
h1 = h1.getNext();
h2 = h2.getNext();
}
return true;
}
public boolean what2 (IntList list) {
Node<Integer> h1 = head;
while (h1 != null) {
boolean found = false;
Node<Integer> 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); System.out.println(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 באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.