Practice #1
الدرس 10 من 14 في دورة القائمة المرتبطة - سلسلة هياكل البيانات #5 على Coddy.
التحدي
سهلاكتب دالة reverseList تستقبل مصفوفة من الأعداد الصحيحة arr وتعيد المصفوفة معكوسة.
استخدم القائمة المرتبطة (linked list) لحل هذه المشكلة! قم بإضافة كل قيمة في مقدمة القائمة، ثم اقرأ القيم منها.
يجب عليك استخدام فئة LinkedList (المتوفرة في linkedlist.<ext> مع node.<ext>) — لا تستخدم الأدوات المدمجة في اللغة مثل دالة العكس المدمجة للمصفوفات، أو التقطيع (slicing)، أو عمليات القوائم في المكتبة القياسية (stdlib) لحساب النتيجة.
جرّب بنفسك
#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;
}