Menu
Coddy logo textTech

Practice #3

Lektion 12 von 14 im Kurs Linked List - Datenstrukturen-Serie #5 von Coddy.

challenge icon

Aufgabe

Einfach

Gegeben ist ein sortiertes Ganzzahl-Array arr (die Werte einer sortierten verketteten Liste). Schreiben Sie eine Funktion removeDuplicates, die das Array zurückgibt, wobei aufeinanderfolgende Duplikate entfernt wurden.

Da die Eingabe sortiert ist, liegen gleiche Werte nebeneinander. Behalten Sie das erste Vorkommen jedes Wertes bei und überspringen Sie den Rest.

Verwenden Sie eine verkettete Liste, um dieses Problem zu lösen!

Sie müssen die Klasse LinkedList verwenden (bereitgestellt in linkedlist.<ext> zusammen mit node.<ext>) — verwenden Sie keine in die Sprache integrierten Funktionen wie das integrierte Umkehren von Arrays, Slicing oder Standardbibliotheks-Listenoperationen, um das Ergebnis zu berechnen.

Probier es selbst

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

Alle Lektionen in Linked List - Datenstrukturen-Serie #5