Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

‫תרגילי הכנה למבחן במבנה נתונים –‬

‫שרשרת חוליות‬

‫חלק א'‬

‫‪.1‬‬
‫א‪.‬‬
‫‪ ‬כתבו פעולה המקבלת הפניה לחוליה ראשונה בשרשרת חוליות של‬
‫מספרים שלמים‪.‬‬
‫‪ ‬הפעולה מחזירה את המספר הגבוה בשרשרת החוליות‪.‬‬

‫‪ ‬כותרת הפעולה –‬
‫)‪int func(Node<int> first‬‬

‫ב‪ .‬מה סיבוכיות הפעולה? הסבר‪.‬‬

‫‪.2‬‬
‫א‪.‬‬
‫‪ ‬כתבו פעולה המקבלת הפניה לחוליה ראשונה בשרשרת חוליות של‬
‫מספרים שלמים‪.‬‬
‫‪ ‬הפעולה מחזירה את המספר השני הכי הגבוה בשרשרת החוליות‪.‬‬

‫‪ ‬כותרת הפעולה –‬
‫)‪int func(Node<int> first‬‬

‫ב‪ .‬מה סיבוכיות הפעולה? הסבר‪.‬‬

‫‪1‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
‫‪.3‬‬
‫א‪.‬‬
‫‪ ‬כתבו פעולה המקבלת הפניה לחוליה ראשונה בשרשרת חוליות של‬
‫מספרים שלמים‪.‬‬
‫‪ ‬הפעולה מחזירה את הממוצע בשרשרת החוליות‪.‬‬

‫‪ ‬כותרת הפעולה –‬
‫)‪float func(Node<int> first‬‬

‫ב‪ .‬מה סיבוכיות הפעולה? הסבר‪.‬‬

‫‪.4‬‬
‫א‪.‬‬
‫‪ ‬כתבו פעולה המקבלת הפניה לחוליה ראשונה בשרשרת חוליות של‬
‫מספרים שלמים‪.‬‬
‫‪ ‬הפעולה מחזירה את מספר הפעמים בהן המספר יופיע בשרשרת‬
‫החוליות‪.‬‬

‫‪ ‬לדוגמה‪ ,‬עבור השרשרת ומספר שלם ‪:4‬‬

‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪null‬‬

‫‪ ‬יוחזר ‪2‬‬

‫‪ ‬כותרת הפעולה –‬
‫)‪int func(Node<int> first, num‬‬

‫ב‪ .‬מה סיבוכיות הפעולה? הסבר‪.‬‬


‫‪2‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
‫‪.5‬‬
‫א‪.‬‬
‫‪ ‬כתבו פעולה המקבלת הפניה לחוליה ראשונה בשרשרת חוליות של‬
‫מספרים שלמים‪.‬‬
‫‪ ‬הפעולה מחזירה את מספר רצף הפעמים הגבוה בן המספר יופיע‬
‫בשרשרת החוליות‪.‬‬

‫‪ ‬לדוגמה‪ ,‬עבור השרשרת ומספר שלם ‪:4‬‬

‫‪1‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪null‬‬

‫‪ ‬יוחזר ‪3‬‬

‫‪ ‬כותרת הפעולה –‬
‫)‪int func(Node<int> first, num‬‬

‫ב‪ .‬מה סיבוכיות הפעולה? הסבר‪.‬‬

‫‪3‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
‫‪.6‬‬
‫א‪.‬‬
‫‪ ‬כתבו פעולה המקבלת הפניה לחוליה ראשונה בשרשרת חוליות של‬
‫מספרים שלמים‪.‬‬
‫‪ ‬הפעולה מכפילה את איברי שרשרת החוליות באופן הבא‪,‬‬

‫‪ ‬אם לפני זימון הפעולה השרשרת הייתה‪:‬‬

‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪null‬‬

‫‪ ‬אז אחרי הפעולה השרשרת תהיה‪:‬‬

‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪null‬‬


‫‪2‬‬

‫‪ ‬כותרת הפעולה –‬
‫)‪void func(Node<int> first‬‬

‫ב‪ .‬מה סיבוכיות הפעולה? הסבר‪.‬‬

‫‪4‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
‫‪.7‬‬
‫א‪.‬‬
‫‪ ‬כתבו פעולה המקבלת הפניה לחוליה ראשונה בשרשרת חוליות של‬
‫מספרים שלמים‪.‬‬
‫‪ ‬הפעולה יוצרת עותק של מספרי השרשרת ומחברת לסוף השרשרת את‬
‫השרשרת בצורה הבאה‪:‬‬

‫‪ ‬אם לפני זימון הפעולה השרשרת הייתה‪:‬‬

‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪null‬‬

‫‪ ‬אז אחרי הפעולה השרשרת תהיה‪:‬‬

‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪null‬‬

‫‪ ‬כותרת הפעולה –‬
‫)‪void func(Node<int> first‬‬

‫ב‪ .‬מה סיבוכיות הפעולה? הסבר‪.‬‬

‫‪5‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
‫‪.8‬‬
‫א‪.‬‬
‫‪ ‬כתבו פעולה המקבלת הפניה לחוליה ראשונה בשרשרת חוליות של‬
‫מספרים שלמים‪.‬‬
‫‪ ‬הפעולה מחזירה ‪ true‬אם כל איבר גדול מהאיבר אחריו‪ .‬אחרת‪ ,‬מחזירה‬
‫‪.false‬‬

‫‪ ‬לדוגמה‪:‬‬

‫‪7‬‬ ‫‪5‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪null‬‬

‫‪ ‬כותרת הפעולה –‬
‫)‪boolean func(Node<int> first‬‬

‫ב‪ .‬מה סיבוכיות הפעולה? הסבר‪.‬‬

‫‪6‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
.9
.‫א‬
. ‫ כתוב פעולה מקבלת מערך שרשרת חוליות‬
.‫ הפעולה מדפיסה את סכום ערך האיברים הראשונים בכל השרשראות‬
– ‫ כותרת הפעולה‬
int func(Node<int>[] listArr)

:‫ פתרון‬
class Program
{

static void func(Node<int>[] listArr)


{
for (int i = 0; i < listArr.Length; i++)
{
Node<int> temp = listArr[i];
while (temp != null)
{
Console.WriteLine(temp.GetValue());
temp = temp.GetNext();
}
}
}

static void Main(string[] args)


{
Node<int>[] listArr = new Node<int>[3];
for (int i = 5; i > 2; i--)
listArr[0] = new Node<int>(i, listArr[0]);
for (int i = 4; i > 1; i--)
listArr[1] = new Node<int>(i, listArr[1]);
for (int i = 3; i > 0; i--)
listArr[2] = new Node<int>(i, listArr[2]);

func(listArr);

Console.ReadKey();
}

7
Ⓒ ‫נכתב ע"י ניצן דולינסקי‬
‫ להעתיק ללא אישור‬/ ‫אין לשכפל‬
‫‪.11‬‬
‫א‪.‬‬
‫‪ ‬כתוב פעולה מקבלת מערך שרשרת חוליות ‪.‬‬
‫‪ ‬הפעולה מדפיסה את סכום ערך האיברים הראשונים בכל השרשראות‪.‬‬
‫‪ ‬כותרת הפעולה –‬
‫)‪int func(Node<int>[] listArr‬‬

‫‪.11‬‬
‫א‪.‬‬
‫‪ ‬כתוב פעולה מקבלת מערך שרשרת חוליות ‪.‬‬
‫‪ ‬הפעולה מדפיסה את סכום ערך האיברים האחרונים בכל השרשראות‪.‬‬
‫‪ ‬כותרת הפעולה –‬
‫)‪int func(Node<int>[] listArr‬‬

‫‪.12‬‬
‫א‪.‬‬
‫‪ ‬כתוב פעולה מקבלת מערך שרשרת חוליות ‪.‬‬
‫‪ ‬הפעולה מדפיסה את סכום ערך כל האיברים בכל השרשראות‪.‬‬
‫‪ ‬כותרת הפעולה –‬
‫)‪int func(Node<int>[] listArr‬‬

‫‪.13‬‬
‫א‪.‬‬
‫‪ ‬כתוב פעולה מקבלת מערך שרשרת חוליות ‪.‬‬
‫‪ ‬הפעולה מדפיסה את ערך האיבר המכסימלי בכל האיברים בכל‬
‫השרשראות‪.‬‬
‫‪ ‬כותרת הפעולה –‬
‫)‪int func(Node<int>[] listArr‬‬

‫‪8‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
7 ‫חלק ב' – תרגילים מספר – פרק‬

4,8, 9, 12 ‫ לפתור תרגילים‬


:8 ‫ פתרון‬
static void func(Node<int> first)
{
Node<int> temp = first;

while (temp != null && temp.GetNext() != null)


{
if (temp.GetValue()== temp.GetNext().GetValue())
temp.SetNext(temp.GetNext().GetNext());
else
temp = temp.GetNext();
}
}

9
Ⓒ ‫נכתב ע"י ניצן דולינסקי‬
‫ להעתיק ללא אישור‬/ ‫אין לשכפל‬
‫חלק ג' – תרגילים מבחינות חיצוניות‬

‫‪ – 0202‬אביב מועד ב' – שאלה ‪5‬‬

‫‪11‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
‫‪ – 0200‬אביב מועד א' – שאלה ‪1‬‬

‫‪11‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
‫‪ – 0201‬קיץ – מועד ב' – שאלה ‪0‬‬

‫‪12‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
‫‪ – 0200‬קיץ מועד ב' – שאלה ‪0‬‬

‫‪13‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬

You might also like