Presentation is loading. Please wait.

Presentation is loading. Please wait.

מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות.

Similar presentations


Presentation on theme: "מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות."— Presentation transcript:

1 מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות

2 נושא התרגול מחלקות בעלות הגדרה רקורסיבית המחלקה NODE
מבוא לרשימות מקושרות

3 Node Class

4 Get/Set

5 פתרון תרגיל 1

6 דוגמאות שימוש

7 תרגיל 2

8 פתרון תרגיל 2 – חלק א

9 פתרון תרגיל 2 - חלק ב

10 תרגיל 3 – חלוקה של רשימה

11 פתרון תרגיל 3

12 תרגיל 4 בהתיחס להגדרת הצומת משאלה מס' 1, השלם את החלק החסר בקוד הבא כך שהפונקציה תשכפל כל צומת מס' פעמים השווה לערכו של משתנה ה- val שלו ואז תוסיף את הצמתים החדשים לרשימה ישר אחרי הצומת ממנו הם שוכפלו. public static void multiply(Node<Integer> head) { Node<Integer> temp; int i; while(head != null) temp = head.getNext(); for(i=0; ??? 1 ???; i++) ??? 2 ??? ??? 3 ??? } head.setNext(??? 4 ???) ; ??? 5 ??? לדוגמה, אחרי הביצוע של הפונקציה הנ"ל הרשימה העליונה תהפוך לתחתונה:

13 פתרון תרגיל 4 public static void multiply(Node<Integer> head) { Node<Integer> temp; int i; while(head != null) temp = head.getNext(); for(i=0; i < head.getVal() - 1; i++) head.setNext (new Node<Integer> (head.getVal())); head = head.getNext() ; } head.setNext(temp) ; //connect to the next node in the //original list head = temp; //move to the next node in the //original list.

14 תרגיל 5 public static void trim(Node<Integer> lst) { Node<Integer> aux; while(??? 1 ??? && ??? 2 ??? ){ if(lst.getVal == ??? 3 ??? ){ aux = ??? 4 ??? ; lst.setNext( ??? 5 ???) ; ??? 6 ???; } else ??? 7 ???; בהתיחס להגדרת הצומת משאלה מס' 1, השלם את החלק החסר בקוד הבא כך שהפונקציה תמחק את כל המופעים הכפולים של ערכים ברשימה מקושרת ממוינת (ותשאיר רק אחד מהם).

15 פתרון תרגיל 5 public static void trim(Node<Integer> lst) { Node<Integer> aux; while(lst != null && lst.getNext != null){ if(lst.getVal == (lst.getNext()).getVal()){ aux = lst.getNext (); lst.setNext( (lst.getNext() ).getNext()) ; aux.setNext(null); } else lst = lst.getNext ();

16 תרגיל 6 יש לכתוב פונקציה public int countDifItems(Node<Integer> list) המקבלת כארגומנט רשימה מקושרת ומחזירה את מספר הערכים השונים (value) שברשימה. לדוגמה, עבור הרשימה באה: 22 11 12 head NULL countDifItems(head) תחזיר 3.

17 פתרון תרגיל 6 public static int countDifItems( Node<Integer> list) { Node<Integer> temp; boolean found; int count = 0; while(list != null){ temp = list.getNext(); found = false; while(temp !=null && !found){ if(temp.getValue() == list.getValue()) found = true; temp = temp.getNext(); } if(!found) count++; list = list.getNext(); return count;


Download ppt "מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות."

Similar presentations


Ads by Google