Menu
Coddy logo textTech

Özet - Linked List Oluşturucu

Coddy'nin GO Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 24 / 107.

challenge icon

Görev

Kolay

Sıfırdan bir bağlı liste (linked list) oluşturalım! Her düğümün bir sonrakini işaret ettiği, bellekte birbirine bağlı değerlerden oluşan bir zincir yapısı kuracaksınız.

Kodunuzu iki dosya halinde düzenleyeceksiniz:

  • linkedlist.go: Value (int) ve Next (*Node) alanlarına sahip bir Node yapısı (struct) tanımlayın. Head düğümüne bir işaretçi (pointer) tutan bir LinkedList yapısı oluşturun. *LinkedList üzerinde şu metotları uygulayın:
    • Append - verilen değere sahip yeni bir düğümü listenin sonuna ekler
    • Prepend - verilen değere sahip yeni bir düğümü listenin başına ekler
    • Print - listeyi baştan sona gezer ve tüm değerleri -> ile ayırarak yazdırır, sonuna nil ekler
  • main.go: Girdiden değerleri okuyun, düğümleri sona ekleyerek (append) ve başa ekleyerek (prepend) bir bağlı liste oluşturun, ardından listenin son yapısını yazdırın.

Aşağıdaki girdiler sağlanacaktır:

  • Satır 1: Sona eklenecek ilk değer
  • Satır 2: Sona eklenecek ikinci değer
  • Satır 3: Başa eklenecek değer

Print metodunuz listeyi şu formatta çıktı vermelidir:

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

Örneğin, 10, 20 ve 5 verildiğinde, çıktınız şu şekilde olmalıdır:

5 -> 10 -> 20 -> nil

Append metodunun, yeni düğümü eklemeden önce listenin sonuna (Next değerinin nil olduğu yere) kadar ilerlemesi gerekir. Prepend metodu yeni bir düğüm oluşturmalı, bu düğümün Next alanını mevcut head'e yönlendirmeli ve ardından head'i yeni düğüm olarak güncellemelidir. Boş bir listenin head değerinin nil olduğunu unutmayın, bu nedenle Append metodunuzda bu durumu ele alın.

Kendin dene

package main

import "fmt"

func main() {
	// Giriş değerlerini oku
	var val1, val2, val3 int
	fmt.Scanln(&val1)
	fmt.Scanln(&val2)
	fmt.Scanln(&val3)

	// Yeni bir bağlı liste oluştur
	list := &LinkedList{}

	// TODO: val1 ve val2'yi listeye eklemek için Append kullanın

	// TODO: val3'ü listenin başına eklemek için Prepend kullanın

	// TODO: Nihai liste yapısını yazdırın
}

Nesne Yönelimli Programlama bölümündeki tüm dersler