Practice #3
Lektion 12 von 14 im Kurs Verkettete Liste - Datenstrukturen Serie #5 von Coddy.
Aufgabe
EinfachGegeben ist ein sortiertes Integer-Array arr (die Werte einer sortierten verketteten Liste). Schreiben Sie eine Funktion removeDuplicates, die das Array ohne aufeinanderfolgende Duplikate zurückgibt.
Da die Eingabe sortiert ist, liegen gleiche Werte nebeneinander. Behalten Sie das erste Vorkommen jedes Werts 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 Sprach-Built-ins wie das integrierte Reverse von Arrays, Slicing oder stdlib-Operationen für List, 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;
}