Menu
Coddy logo textTech

Riepilogo - Costruttore di liste concatenate

Fa parte della sezione Programmazione orientata agli oggetti del percorso GO di Coddy. Lezione 24 di 107.

challenge icon

Sfida

Facile

Costruiamo una lista concatenata da zero! Creerai una struttura dati in cui ogni nodo punta al successivo, formando una catena di valori collegati in memoria.

Organizzerai il codice in due file:

  • linkedlist.go: Definisci una struct Node con i campi Value (int) e Next (*Node). Crea una struct LinkedList che contiene un puntatore al nodo Head. Implementa questi metodi su *LinkedList:
    • Append - aggiunge un nuovo nodo con il valore specificato alla fine della lista
    • Prepend - aggiunge un nuovo nodo con il valore specificato all'inizio della lista
    • Print - scorre la lista e stampa tutti i valori separati da -> , terminando con nil
  • main.go: Leggi i valori dall'input, crea una lista concatenata aggiungendo nodi alla fine e all'inizio, quindi stampa la struttura finale della lista.

Verranno forniti i seguenti input:

  • Riga 1: primo valore da aggiungere alla fine
  • Riga 2: secondo valore da aggiungere alla fine
  • Riga 3: valore da aggiungere all'inizio

Il tuo metodo Print dovrebbe stampare la lista in questo formato:

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

Ad esempio, dati 10, 20 e 5, il tuo output dovrebbe essere:

5 -> 10 -> 20 -> nil

Il metodo Append deve scorrere la lista fino alla fine (dove Next è nil) prima di aggiungere il nuovo nodo. Il metodo Prepend dovrebbe creare un nuovo nodo, impostare il suo Next sul nodo iniziale corrente, quindi aggiornare il nodo iniziale con il nuovo nodo. Ricorda che una lista vuota ha un nodo iniziale nil, quindi gestisci questo caso nel tuo metodo Append.

Provalo tu

package main

import "fmt"

func main() {
	// Leggi i valori di input
	var val1, val2, val3 int
	fmt.Scanln(&val1)
	fmt.Scanln(&val2)
	fmt.Scanln(&val3)

	// Crea una nuova lista concatenata
	list := &LinkedList{}

	// TODO: Usa Append per aggiungere val1 e val2 alla lista

	// TODO: Usa Prepend per aggiungere val3 all'inizio della lista

	// TODO: Stampa la struttura finale della lista
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Go online