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 bağlı bir liste oluşturalım! Her düğümün bir sonrakine işaret ettiği ve bellekte birbirine bağlı değerlerden oluşan bir zincir meydana getiren bir veri yapısı oluşturacaksın.

Kodunu iki dosyaya ayıracaksın:

  • linkedlist.go: Node (int) ve Value (*Node) alanlarına sahip bir Next struct'ı tanımla. LinkedList düğümüne bir işaretçi tutan bir Head struct'ı oluştur. Bu metotları *LinkedList üzerinde uygula:
    • 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 - listede gezinir ve tüm değerleri -> ile ayırarak yazdırır; çıktıyı nil ile bitirir
  • main.go: Girdiden değerleri oku, düğümleri sona ve başa ekleyerek bir bağlı liste oluştur, ardından son liste yapısını yazdır.

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

  • 1. satır: Eklenecek ilk değer
  • 2. satır: Eklenecek ikinci değer
  • 3. satır: Başa eklenecek değer

Print metodun listeyi şu formatta çıktılamalıdır:

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

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

5 -> 10 -> 20 -> nil

Append metodu, yeni düğümü eklemeden önce listenin sonuna (Next'in nil olduğu yere) kadar ilerlemelidir. Prepend metodu yeni bir düğüm oluşturmalı, düğümün Next alanını mevcut başa işaret edecek şekilde ayarlamalı, ardından başı yeni düğüm olarak güncellemelidir. Boş bir listenin nil başa sahip olduğunu unutma; bu nedenle Append metodunda bu durumu ele al.

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

Kendi başına pratik yap: Online Go derleyicisi