Menu
Coddy logo textTech

Practice #3

Coddy'nin Bağlı Liste - Veri Yapıları Serisi #5 kursunda ders 12 / 14.

challenge icon

Görev

Kolay

Sıralanmış bir tam sayı dizisi arr (sıralı bir bağlı listenin değerleri) verildiğinde, ardışık kopyaları 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 tutun 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> dosyasında sağlanmıştır) — sonucu hesaplamak için dizilerin yerleşik ters çevirme, dilimleme veya standart kütüphane liste işlemleri gibi dile özgü yerleşik özellikleri 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;
}

Bağlı Liste - Veri Yapıları Serisi #5 bölümündeki tüm dersler