אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2021 · קיץ מועד א · שאלה 4כל שאלות המבחן ←
מבנים לינארייםרשימות מקושרות

נתונה פעולה חיצונית נתונה delete (זמינה לשימוש, אין לממש) המוחקת חוליה עם ערך נתון משרשרת. נתונה גם המחלקה BiList - דו-שרשרת, ולה שתי תכונות: lst1 ו-lst2, שתיהן הפניות לתחילת שרשרת חוליות מטיפוס שלם. לפניך ממשק חלקי של המחלקה (בונה + addNum) - זמין לשימוש; אסור להוסיף לו get/set או פעולות נוספות.

// פעולה נתונה (זמינה לשימוש, אין לממש):
// public static Node<int> Delete (int num, Node<int> lst)
// מוחקת את החוליה שבה הערך num משרשרת lst, ומחזירה מצביע לתחילת השרשרת.

// נתונה המחלקה BiList - דו-שרשרת, ולה שתי תכונות:
// lst1 - הפניה לתחילת שרשרת חוליות מטיפוס שלם
// lst2 - הפניה לתחילת שרשרת חוליות מטיפוס שלם
// לפניך ממשק חלקי (זמין לשימוש, אין להוסיף לו Get/Set או פעולות נוספות):
public BiList ()                              // בונה עצם עם שתי שרשראות ריקות
public void AddNum (int num, int codeList)    // מוסיפה חוליה עם הערך num לסוף lst1 (אם codeList=1) או לסוף lst2 (אם codeList=2)

שרשרת lst ופיצולה ל-lst1 (המחצית הגדולה) ו-lst2 (המחצית הקטנה), כפי שמודגם בשאלון

lst:  88 -> -9 -> 0 -> 10 -> 6 -> 13 -> null
BiList result:
  lst1: 88 -> 10 -> 13 -> null
  lst2: -9 -> 0 -> 6 -> null
סעיף א

כתוב פעולה חיצונית ששמה generateBilist בשפת Java או GenerateBilist בשפת C#, המקבלת שרשרת חוליות lst - זוגית מספר החוליות, מטיפוס שלם - ומחזירה עצם מטיפוס BiList שבו: כל אחד מהמספרים שב-lst שייך לאחת מהשרשראות lst1 או lst2; כל המספרים ב-lst1 גדולים מכל המספרים ב-lst2; מספר החוליות בשתי השרשראות זהה. שים לב: אין להוסיף פעולות, גם לא get/set, למחלקה BiList.

public static BiList GenerateBilist (Node<int> lst)

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי