Menu
Coddy logo textTech

תרגול #3

שיעור 12 מתוך 14 בקורס רשימה מקושרת – סדרת מבני נתונים #5 של Coddy.

challenge icon

אתגר

קל

בהינתן מערך של מספרים שלמים ממויין arr (הערכים של רשימה מקושרת ממוינת), כתבו פונקציה removeDuplicates שמחזירה את המערך לאחר הסרת כפילויות עוקבות.

מכיוון שהקלט ממויין, ערכים שווים נמצאים זה לצד זה. השאירו את ההופעה הראשונה של כל ערך ודלגו על השאר.

השתמשו ברשימה מקושרת כדי לפתור את הבעיה!

עליכם להשתמש במחלקה LinkedList (המסופקת בקובץ linkedlist.<ext> יחד עם node.<ext>) — אל תשתמשו בפעולות מובנות של השפה, כמו reverse מובנה למערכים, חיתוך או פעולות רשימה מהספרייה הסטנדרטית, כדי לחשב את התוצאה.

נסו בעצמכם

#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 = removeDuplicates(arr, len, &rs);
    for (int idx = 0; idx < rs; idx++) {
        if (idx > 0) printf(" ");
        printf("%d", r[idx]);
    }
    printf("\n");
    return 0;
}

כל השיעורים ביחידה רשימה מקושרת – סדרת מבני נתונים #5

תרגלו בעצמכם: קומפיילר C אונליין