Menu
Coddy logo textTech

Practice #3

Leçon 12 sur 14 du cours Liste chaînée - Série 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 retourne le tableau avec les doublons consécutifs supprimés.

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

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 les fonctions intégrées du langage comme l'inversion de tableaux, le découpage (slicing) ou les opérations de liste de la bibliothèque standard (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 Structures de données n°5