תרגול #1
שיעור 10 מתוך 14 בקורס רשימה מקושרת – סדרת מבני נתונים #5 של Coddy.
אתגר
קלכתבו פונקציה reverseList שמקבלת מערך של מספרים שלמים arr ומחזירה את המערך בסדר הפוך.
השתמשו ברשימה מקושרת כדי לפתור את הבעיה! הוסיפו כל ערך לתחילת הרשימה, ואז קראו את הערכים.
עליכם להשתמש במחלקה LinkedList (שמסופקת בקובץ linkedlist.<ext> יחד עם node.<ext>) — אל תשתמשו בפעולות מובנות בשפה, כמו פעולת ההיפוך המובנית של מערכים, חיתוך או פעולות רשימה מהספרייה הסטנדרטית, כדי לחשב את התוצאה.
נסו בעצמכם
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "solution.h"
int main() {
char line[8192];
if (!fgets(line, sizeof(line), stdin)) line[0] = '\0';
int arr[4096];
int len = 0;
char* tok = strtok(line, " \t\r\n");
while (tok) { arr[len++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
int rs = 0;
int* r = reverseList(arr, len, &rs);
for (int idx = 0; idx < rs; idx++) {
if (idx > 0) printf(" ");
printf("%d", r[idx]);
}
printf("\n");
return 0;
}
כל השיעורים ביחידה רשימה מקושרת – סדרת מבני נתונים #5
תרגלו בעצמכם: קומפיילר C אונליין