Practice #3
Coddy'nin Bağlı Liste - Veri Yapıları Serisi #5 kursunda ders 12 / 14.
Görev
KolaySıralı bir arr tamsayı dizisi (sıralı bir bağlı listenin değerleri) verildiğinde, ardışık yineleyen değerleri kaldırılmış diziyi döndüren bir removeDuplicates fonksiyonu yazın.
Girdi sıralı olduğu için eşit değerler yan yana bulunur. Her değerin ilk örneğini koruyun ve geri kalanını atlayın.
Bu problemi çözmek için bir bağlı liste kullanın!
LinkedList sınıfını kullanmalısınız (node.<ext> ile birlikte linkedlist.<ext> içinde sağlanmıştır) — sonucu hesaplamak için dizilerin yerleşik ters çevirme, dilimleme veya stdlib list işlemlerini kullanmayın.
Kendin dene
#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;
}