י"ד/טבת/תשע"ה
רשימה מקושרת – – Listתזכורת בנייה וסריקה
אופן סריקת רשימה
הגדרת חוליה והצבת עוגן הרשימה החדשה בה
;)(Node<int> p = l.GetFirst
מעבר בלולאה על הרשימה ,תנאי עצירה החוליה הגיע לסוף הרשימה ()null
)while (p != null
{
שמירת הערך בחוליה לתוך משתנה ( xוביצוע חישוב/בדיקה עליו)
;)(x = p.GetInfo
קידום החוליה
;)(p = p.GetNext
}
רשימה -בניית רשימה -תרגילים נוספים
1
רשימה מקושרת – – Listתזכורת בנייה וסריקה
אופן בניית רשימה
הגדרת רשימה חדשה
;)(>List<int> l_new = new List<int
הגדרת חוליה והצבת עוגן הרשימה החדשה בה
;)(Node<int> p_new = l_new.GetFirst
הכנסת ערכים לרשימה החדשה בתוך לולאה
הוספת ערך לרשימה (מחזירה את המיקום אחריו נוסף הערך = החוליה החדשה)
תוך כדיי קידום החוליה
;)p_new = l_new.Insert(p_new, x_new
רשימה -בניית רשימה -תרגילים נוספים
2
1
י"ד/טבת/תשע"ה
בניית רשימה – תרגיל 1
כתבו פעולה המקבלת מערך של מספרים שלמים ,ומחזירה רשימה של מספרים שלמים מתוך
המערך.
ברשימה יהיו רק המספרים מהמערך הגדולים ,בערכם המוחלט ,לפחות פי שלושה ממיקומם הסידורי.
פתרון
)static List<int> ArrayToList(int[] arr
{
//מחזירה רשימה של מספרים שלמים מתוך המערך הגדולים בערכם המוחלט לפחות פי שלושה ממיקומם
הסידורי
;)(>List<int> l_new = new List<int
;)(Node<int> p_new = l_new.GetFirst
)for (int i = 0; i < arr.Length; i++
)if (Math.Abs(arr[i]) >= i * 3
;)]p_new = l_new.Insert(p_new, arr[i
} ;return l_new
רשימה -בניית רשימה -תרגילים נוספים
3
בניית רשימה – תרגיל 2
כתבו פעולה המקבלת רשימה של מספרים שלמים ,ומחזירה רשימה של מספרים
שלמים הכוללת רק את המספרים מתוך הרשימה המקורית שאינם גדולים
מממוצע הערכים בה.
פתרון
טיוטה
פעולת עזר – ממוצע הערכים ברשימה
פעולה עיקרית – מעבר על ערכי הרשימה המתקבלת ,והכנסה של אלו
העונים לתנאי לרשימה
רשימה -בניית רשימה -תרגילים נוספים
4
2
תשע"ה/טבת/י"ד
2 בניית רשימה – תרגיל
פעולת העזר
static double ListAvg(List<int> l)
{
הנחה – הרשימה אותחלה ואינה ריקה. מחזירה את ממוצע הערכים ברשימה//
int count = 0, sum = 0;
Node<int> p = l.GetFirst();
while (p != null)
{
sum += p.GetInfo();
count++;
p = p.GetNext(); }
return (double)sum / count;
}
5
תרגילים נוספים- בניית רשימה- רשימה
2 בניית רשימה – תרגיל
הפעולה העיקרית
static List<int> List2List_LessThenAvg(List<int> l){
מחזירה רשימה הכוללת את המספרים שאינם גדולים מהממוצע בלבד מתוך הרשימה//
המתקבלת
הרשימה אותחלה- הנחה//
List<int> l_new = new List<int>();
Node<int> p_new = l_new.GetFirst();
חשוב לשמור במשתנה עזר לצורך יעילות//
double avg = ListAvg(l); int x;
Node<int> p = l.GetFirst();
while (p != null) {
x = p.GetInfo();
if (x <= avg) p_new = l_new.Insert(p_new, x);
p = p.GetNext();}
return l_new;}
6
3
תרגילים נוספים- בניית רשימה- רשימה
© Copyright 2025