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

Practice #3

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

challenge icon

التحدي

سهل

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

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

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

يجب عليك استخدام الفئة LinkedList (المتوفرة في linkedlist.<ext> جنباً إلى جنب مع node.<ext>) — لا تستخدم الميزات المدمجة في اللغة مثل عكس المصفوفات المدمج، أو التقطيع (slicing)، أو عمليات list المدمجة في 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;
}

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