Menu
Coddy logo textTech

Practice #3

Leçon 12 sur 14 du cours Liste chaînée - Série sur les structures de données n°5 de Coddy.

challenge icon

Défi

Facile

Étant donné un tableau d'entiers trié arr (les valeurs d'une liste chaînée triée), écrivez une fonction removeDuplicates qui renvoie le tableau en ayant supprimé les doublons consécutifs.

Comme l'entrée est triée, les valeurs égales se trouvent les unes à côté des autres. Conservez la première occurrence de chaque valeur et ignorez le reste.

Utilisez une liste chaînée pour résoudre ce problème !

Vous devez utiliser la classe LinkedList (fournie dans linkedlist.<ext> avec node.<ext>) — n'utilisez pas de fonctionnalités intégrées du langage telles que l'inversion intégrée des tableaux, le découpage (slicing) ou les opérations sur les listes de la stdlib pour calculer le résultat.

Essayez vous-même

#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;
}

Toutes les leçons de Liste chaînée - Série sur les structures de données n°5