Menu
Coddy logo textTech

Practice #4

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

challenge icon

Görev

Kolay

Verilen iki sıralı tam sayı dizisi a ve b (iki sıralı bağlı listenin değerleri) için, her iki girdideki tüm değerleri içeren tek bir sıralı dizi döndüren bir mergeSorted fonksiyonu yazın.

Bu problemi çözmek için bir bağlı liste kullanın! Her iki listeyi paralel olarak gezin ve sürekli olarak daha küçük olan baş düğümü sonucunuza ekleyin.

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 line1[8192];
    char line2[8192];
    if (!fgets(line1, sizeof(line1), stdin)) line1[0] = '\0';
    if (!fgets(line2, sizeof(line2), stdin)) line2[0] = '\0';
    int a[4096];
    int alen = 0;
    char* tok = strtok(line1, " \t\r\n");
    while (tok) { a[alen++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
    int b[4096];
    int blen = 0;
    tok = strtok(line2, " \t\r\n");
    while (tok) { b[blen++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
    int rs = 0;
    int* r = mergeSorted(a, alen, b, blen, &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