סעיף א
הפעולה first שלפניכם מקבלת הפניה ch לחוליה הראשונה של שרשרת החוליות של מספרים שלמים ומספר שלם x.
public static Node<Integer> first(Node<Integer> ch, int x){
if(ch == null)
return new Node<Integer>(x);
ch.setNext(first(ch.getNext(),x));
return ch;
}
- נתונה שרשרת החוליות:
ch ->8➔7➔9➔15➔4עקבו אחרי זימון הפעולהch = first(ch, 3)ורשמו איך תיראה השרשרת אחרי ביצוע הפעולה. - מה מבצעת הפעולה first באופן כללי?
סעיף ב
כתבו את הפעולה first בצורה הלא רקורסיבית.
סעיף ג
הפעולה second שלפניכם מקבלת הפניה לשורש של עץ בינארי ומספר שלם וחיובי k.
public static Node<Integer> second(BinNode<Integer> bt, int k){
Node<Integer> list = third(bt, null, k);
return list;
}
public static Node<Integer> third(BinNode<Integer> bt, Node<Integer> list, int k) {
if(bt!=null)
{
if(k>0)
{
list = third(bt.getLeft(), list, k-1);
list = third(bt.getRight(), list, k-1);
}
else
list = first(list, bt.getValue());
}
return list;
}
- עקבו אחרי זימון הפעולה
second(bt,3)ורשמו מה תחזיר הפעולה עבור העץ שלפניכם:⚠️ עץ הדוגמה מוצג כתרשים גרפי ב-PDF ולא ניתן לשחזור משכבת הטקסט (לא נשמרו ערכי הצמתים). יש לעיין בעמוד המקורי (עמ' 10 C# / עמ' 20 Java) לפני מענה על סעיף זה.
- מה מבצעת הפעולה second באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.