תרגול מס׳ 2
שיעור 10 מתוך 13 בקורס מחסנית – סדרת מבני נתונים #1 של Coddy.
האתגרים הבאים נועדו להשתמש בהם במחסנית .
מבנה הנתונים Stack כבר מסופק לך — השתמש בו!
אתגר
קלכתבו פונקציה nse שמקבלת מערך של מספרים שלמים ומחזירה מערך שמכיל את האיבר הקטן הקרוב ביותר משמאל לכל איבר. אם אין איבר קטן יותר משמאל לאיבר, החזירו -1.
השתמשו במחסנית שסופקה כדי לפתור את הבעיה!
דוגמה:
קלט: [4, 5, 2, 10, 8]
פלט צפוי: [-1, 4, -1, 2, 2]
נסו בעצמכם
#include <stdio.h>
#include <stdlib.h>
#include "nse.h"
int main() {
int* a = (int*)malloc(sizeof(int) * 1000);
int aSize = 0;
int x;
while (scanf("%d", &x) == 1) {
a[aSize++] = x;
}
int returnSize;
int* result = nse(a, aSize, &returnSize);
for (int i = 0; i < returnSize; i++) {
printf("%d\n", result[i]);
}
free(a);
return 0;
}
כל השיעורים ביחידה מחסנית – סדרת מבני נתונים #1
תרגלו בעצמכם: קומפיילר C אונליין