Menu
Coddy logo textTech

Practice #4

Coddy'nin Çift Yönlü Bağlı Liste - Veri Yapıları Serisi #6 kursunda ders 13 / 14.

challenge icon

Görev

Kolay

Bir tam sayı dizisi arr (bir çift yönlü bağlı listenin değerleri) ve bir tam sayı value alan, value değerinin ilk geçtiği yeri bulan ve o düğümü listenin başına taşıyan bir moveToFront fonksiyonu yazın. Sonuç dizisini döndürün.

Eğer value listede yoksa, diziyi değiştirmeden döndürün.

Bu problemi çözmek için bir çift yönlü bağlı liste kullanın!

DoublyLinkedList sınıfını kullanmalısınız (node.<ext> ile birlikte doublylinkedlist.<ext> dosyasında sağlanmıştır) — sonucu hesaplamak için dizilerin ters çevrilmesi (reverse), dilimleme (slicing), sıralama (sort) veya standart kütüphane liste işlemleri gibi dile özgü yerleşik işlevleri kullanmayın.

Kendin dene

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "solution.h"

int main() {
    char line1[8192];
    char line2[64];
    if (!fgets(line1, sizeof(line1), stdin)) line1[0] = '\0';
    if (!fgets(line2, sizeof(line2), stdin)) line2[0] = '\0';
    int arr[4096];
    int len = 0;
    char* tok = strtok(line1, " \t\r\n");
    while (tok) { arr[len++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
    int n = atoi(line2);
    int rs = 0;
    int* r = moveToFront(arr, len, n, &rs);
    for (int idx = 0; idx < rs; idx++) {
        if (idx > 0) printf(" ");
        printf("%d", r[idx]);
    }
    printf("\n");
    return 0;
}

Çift Yönlü Bağlı Liste - Veri Yapıları Serisi #6 bölümündeki tüm dersler