Menu
CoddyTech

Rekap: Pembuat Linked List

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan GO di Coddy. Pelajaran 24 dari 107.

challenge icon

Tantangan

Mudah

Mari buat linked list dari awal! Kamu akan membuat struktur data tempat setiap node menunjuk ke node berikutnya, membentuk rantai nilai yang saling terhubung di memori.

Kamu akan menyusun kodemu dalam dua file:

  • linkedlist.go: Definisikan struct Node dengan field Value (int) dan Next (*Node). Buat struct LinkedList yang menyimpan pointer ke node Head. Implementasikan method berikut pada *LinkedList:
    • Append - menambahkan node baru dengan nilai yang diberikan ke akhir list
    • Prepend - menambahkan node baru dengan nilai yang diberikan ke awal list
    • Print - menelusuri list dan mencetak semua nilai yang dipisahkan oleh -> , lalu diakhiri dengan nil
  • main.go: Baca nilai dari input, buat linked list dengan menambahkan node ke akhir dan awal list, lalu cetak struktur list akhir.

Input berikut akan diberikan:

  • Baris 1: Nilai pertama untuk ditambahkan ke akhir list
  • Baris 2: Nilai kedua untuk ditambahkan ke akhir list
  • Baris 3: Nilai untuk ditambahkan ke awal list

Method Print-mu harus menampilkan list dalam format ini:

[value1] -> [value2] -> [value3] -> nil

Misalnya, jika diberikan 10, 20, dan 5, output-mu harus berupa:

5 -> 10 -> 20 -> nil

Method Append perlu menelusuri list hingga ke akhir (tempat Next bernilai nil) sebelum menambahkan node baru. Method Prepend harus membuat node baru, mengarahkan Next-nya ke head saat ini, lalu memperbarui head agar menunjuk ke node baru. Ingat, head dari list kosong bernilai nil, jadi tangani kasus itu dalam method Append-mu.

Coba sendiri

package main

import "fmt"

func main() {
	// Baca nilai input
	var val1, val2, val3 int
	fmt.Scanln(&val1)
	fmt.Scanln(&val2)
	fmt.Scanln(&val3)

	// Buat linked list baru
	list := &LinkedList{}

	// TODO: Gunakan Append untuk menambahkan val1 dan val2 ke list

	// TODO: Gunakan Prepend untuk menambahkan val3 ke awal list

	// TODO: Cetak struktur akhir list
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Go online