שאלה 4מבני נתונים2021 קיץ מועד ארשימה מקושרתסה״כ 20 נק׳
פיצול שרשרת חוליות לשתי רשימות ממוינות
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
בשאלה זו תוכל להשתמש בפעולה החיצונית שלפניך בלי לממש אותה.
public static Node<Integer> delete (int num, Node<Integer> lst)
הפעולה מקבלת מספר — num והפניה לתחילת שרשרת חוליות — lst. הפעולה מוחקת את החוליות שבהן הערך num ומחזירה הפניה לתחילת שרשרת החוליות.
נתונה המחלקה BiList — דו־שרשרת, ולה שתי תכונות:
lst1 — הפניה לתחילת שרשרת חוליות מטיפוס שלם
lst2 — הפניה לתחילת שרשרת חוליות מטיפוס שלם
לפניך ממשק חלקי של המחלקה BiList.
יש להשתמש בפעולות הממשק ללא צורך לממש אותן.
⚠ שים לב — אילוץ מחייב
אין להוסיף פעולות, גם לא פעולות get ו־set למחלקה BiList.
מפרט המחלקה
פעולה הבונה את העצם עם הפניות לשתי שרשראות ריקות.
Javapublic BiList ()
פעולה המוסיפה חוליה שבה הערך num לסוף השרשרת lst1 או לסוף השרשרת lst2 בהתאם ל־codeList: כאשר codeList שווה 1, num יוכנס ל־lst1, וכאשר codeList שווה 2, num יוכנס ל־lst2. הנח שהערך של הפרמטר codeList תקין.
Javapublic void addNum (int num, int codeList)
משימות
אמשימה א
מימוש100%
כתוב פעולה חיצונית ששמה generateBilist המקבלת שרשרת חוליות — lst של מספרים שלמים. מספר החוליות ב־lst זוגי והמספרים בחוליות שלה שונים זה מזה.
הפעולה תחזיר עצם מטיפוס BiList שמתקיימים בו התנאים האלה:
כל אחד מן המספרים שבשרשרת lst יופיע באחת מן השרשראות lst1 ו־lst2.
כל המספרים בשרשרת lst1 יהיו גדולים מכל המספרים בשרשרת lst2.
שאלה 4מבני נתונים2021 קיץ מועד ארשימה מקושרתסה״כ 20 נק׳
פיצול שרשרת חוליות לשתי רשימות ממוינות
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
בשאלה זו תוכל להשתמש בפעולה החיצונית שלפניך בלי לממש אותה.
public static Node<Integer> delete (int num, Node<Integer> lst)
הפעולה מקבלת מספר — num והפניה לתחילת שרשרת חוליות — lst. הפעולה מוחקת את החוליות שבהן הערך num ומחזירה הפניה לתחילת שרשרת החוליות.
נתונה המחלקה BiList — דו־שרשרת, ולה שתי תכונות:
lst1 — הפניה לתחילת שרשרת חוליות מטיפוס שלם
lst2 — הפניה לתחילת שרשרת חוליות מטיפוס שלם
לפניך ממשק חלקי של המחלקה BiList.
יש להשתמש בפעולות הממשק ללא צורך לממש אותן.
⚠ שים לב — אילוץ מחייב
אין להוסיף פעולות, גם לא פעולות get ו־set למחלקה BiList.
מפרט המחלקה
פעולה הבונה את העצם עם הפניות לשתי שרשראות ריקות.
Javapublic BiList ()
פעולה המוסיפה חוליה שבה הערך num לסוף השרשרת lst1 או לסוף השרשרת lst2 בהתאם ל־codeList: כאשר codeList שווה 1, num יוכנס ל־lst1, וכאשר codeList שווה 2, num יוכנס ל־lst2. הנח שהערך של הפרמטר codeList תקין.
Javapublic void addNum (int num, int codeList)
משימות
אמשימה א
מימוש100%
כתוב פעולה חיצונית ששמה generateBilist המקבלת שרשרת חוליות — lst של מספרים שלמים. מספר החוליות ב־lst זוגי והמספרים בחוליות שלה שונים זה מזה.
הפעולה תחזיר עצם מטיפוס BiList שמתקיימים בו התנאים האלה:
כל אחד מן המספרים שבשרשרת lst יופיע באחת מן השרשראות lst1 ו־lst2.
כל המספרים בשרשרת lst1 יהיו גדולים מכל המספרים בשרשרת lst2.