Menu
Coddy logo textTech

Practice #3

Lección 12 de 14 del curso Lista Enlazada - Serie de Estructuras de Datos #5 de Coddy.

challenge icon

Desafío

Fácil

Dado un arreglo de enteros ordenado arr (los valores de una lista enlazada ordenada), escribe una función removeDuplicates que devuelva el arreglo con los duplicados consecutivos eliminados.

Debido a que la entrada está ordenada, los valores iguales se encuentran uno al lado del otro. Mantén la primera aparición de cada valor y omite el resto.

¡Utiliza una lista enlazada para resolver este problema!

Debes usar la clase LinkedList (proporcionada en linkedlist.<ext> junto con node.<ext>) — no utilices funciones integradas del lenguaje como el reverso integrado de los arreglos, segmentación (slicing) u operaciones de listas de la biblioteca estándar (stdlib) para calcular el resultado.

Pruébalo tú mismo

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

Todas las lecciones de Lista Enlazada - Serie de Estructuras de Datos #5