Latihan #3
Pelajaran 12 dari 14 dalam kursus Linked List, Seri Struktur Data #5 di Coddy.
Tantangan
MudahDiberikan array bilangan bulat terurut arr (nilai-nilai dari linked list yang terurut), tulis fungsi removeDuplicates yang mengembalikan array dengan duplikat berurutan dihapus.
Karena input sudah terurut, nilai yang sama akan berada bersebelahan. Pertahankan kemunculan pertama setiap nilai dan lewati sisanya.
Gunakan linked list untuk menyelesaikan masalah ini!
Kamu harus menggunakan class LinkedList (disediakan dalam linkedlist.<ext> bersama node.<ext>) — jangan gunakan fitur bawaan bahasa seperti reverse bawaan array, slicing, atau operasi list dari pustaka standar untuk menghitung hasilnya.
Coba sendiri
#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;
}
Semua pelajaran di Linked List, Seri Struktur Data #5
Latihan sendiri: Compiler C online