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

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

‫מחסנית‬

‫חלק א'‬

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

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

‫‪ ‬יש לשמור על המחסנית במצב המקורי בסיום הפעולה‪.‬‬

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

‫‪1‬‬
‫נכתב ע"י ניצן דולינסקי ‪Ⓒ‬‬
‫אין לשכפל ‪ /‬להעתיק ללא אישור‬
‫פתרון‬
.‫א‬
class Program
{
static int func(Stack<int> stk)
{
int count = 0;
Stack<int> tmpStk = new Stack<int>();

while (!stk.IsEmpty())
{
tmpStk.Push(stk.Pop());
count++;
}

while (!tmpStk.IsEmpty())
stk.Push(tmpStk.Pop());

return count;
}

static void Main(string[] args)


{
Stack<int> stk = new Stack<int>();
for (int i = 0; i < 5; i++)
stk.Push(i);
Console.WriteLine(func(stk));
Console.ReadKey();
}
}

2
Ⓒ ‫נכתב ע"י ניצן דולינסקי‬
‫ להעתיק ללא אישור‬/ ‫אין לשכפל‬
‫ב‪.‬‬
‫‪ ‬הלולאה הראשונה מבצעת כמות איטרציות כמספר האיברים במחסנית‬
‫הראשונה‪ ,‬מעדכנת ‪ ,count‬ודוחפת כל מספר למחסנית השנייה ‪ -‬סיבוכיות‬
‫זמן )‪.O(n‬‬
‫‪ ‬הלולאה השנייה מבצעת כמות איטרציות כמספר האיברים במחסנית‬
‫השנייה‪ ,‬ודוחפת כל מספר למחסנית הראשונה ‪ -‬סיבוכיות זמן )‪.O(n‬‬
‫‪ ‬לכן‪ ,‬סיבוכיות הזמן הכוללת של פונקציית ‪ func‬היא )‪ ,O(n‬כאשר כאשר ‪n‬‬
‫הוא מספר האיברים במחסנית‪.‬‬

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

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

‫‪ ‬יש לשמור על המחסנית במצב המקורי בסיום הפעולה‪.‬‬

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

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

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

‫‪ ‬יש לשמור על המחסנית במצב המקורי בסיום הפעולה‪.‬‬

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

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

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

‫‪ ‬יש לשמור על המחסנית במצב המקורי בסיום הפעולה‪.‬‬

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

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

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

‫‪ ‬יש לשמור על המחסנית במצב המקורי בסיום הפעולה‪.‬‬

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

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

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

‫‪ ‬יש לשמור על המחסנית במצב המקורי בסיום הפעולה‪.‬‬

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

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

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

‫‪ ‬יש לשמור על המחסנית במצב המקורי בסיום הפעולה‪.‬‬

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

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

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

‫‪ ‬יש לשמור על המחסנית במצב המקורי בסיום הפעולה‪.‬‬

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

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

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

‫‪ ‬יש לשמור על המחסנית במצב המקורי בסיום הפעולה‪.‬‬

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

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

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

‫‪ ‬יש לשמור על המחסנית במצב המקורי בסיום הפעולה‪.‬‬

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

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

‫‪ ‬כותרת הפעולה –‬
‫)‪void func(Stack<int> stk1, Stack<int> stk2‬‬

‫‪ ‬יש לשמור על המחסניות במצב המקורי בסיום הפעולה‪.‬‬


‫לפני‬ ‫אחרי‬
‫‪Stk1‬‬ ‫‪Stk2‬‬ ‫‪Stk1‬‬ ‫‪Stk2‬‬
‫‪4‬‬ ‫‪8‬‬ ‫‪4‬‬ ‫‪8‬‬
‫‪3‬‬ ‫‪7‬‬ ‫‪3‬‬ ‫‪7‬‬
‫‪2‬‬ ‫‪6‬‬ ‫‪2‬‬ ‫‪6‬‬
‫‪1‬‬ ‫‪5‬‬ ‫‪1‬‬ ‫‪5‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬

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

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

‫‪ ‬כותרת הפעולה –‬
‫)‪void func(Stack<int> stk1, Stack<int> stk2‬‬

‫‪ ‬יש לשמור על המחסניות במצב המקורי בסיום הפעולה‪.‬‬


‫לפני‬ ‫אחרי‬
‫‪Stk1‬‬ ‫‪Stk2‬‬ ‫‪Stk1‬‬ ‫‪Stk2‬‬
‫‪4‬‬ ‫‪8‬‬ ‫‪8‬‬ ‫‪8‬‬
‫‪3‬‬ ‫‪7‬‬ ‫‪4‬‬ ‫‪7‬‬
‫‪2‬‬ ‫‪6‬‬ ‫‪7‬‬ ‫‪6‬‬
‫‪1‬‬ ‫‪5‬‬ ‫‪3‬‬ ‫‪5‬‬
‫‪6‬‬
‫‪2‬‬
‫‪5‬‬
‫‪1‬‬

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

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

‫‪13,14,16‬‬

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

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

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

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

You might also like