Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Practice #3

الدرس 12 من 14 في دورة القائمة المرتبطة - سلسلة هياكل البيانات #5 على Coddy.

challenge icon

التحدي

سهل

بفرض وجود مصفوفة أعداد صحيحة مرتبة arr (قيم قائمة مرتبطة مرتبة)، اكتب دالة removeDuplicates تعيد المصفوفة مع إزالة التكرارات المتتالية.

بما أن المدخلات مرتبة، فإن القيم المتساوية تقع بجانب بعضها البعض. احتفظ بأول ظهور لكل قيمة وتخطى الباقي.

استخدم قائمة مرتبطة لحل هذه المشكلة!

يجب عليك استخدام فئة 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 = removeDuplicates(arr, len, &rs);
    for (int idx = 0; idx < rs; idx++) {
        if (idx > 0) printf(" ");
        printf("%d", r[idx]);
    }
    printf("\n");
    return 0;
}

جميع دروس القائمة المرتبطة - سلسلة هياكل البيانات #5