Menu
Coddy logo textTech

Récapitulatif - Constructeur de liste chaînée

Fait partie de la section Programmation Orientée Objet du Journey GO de Coddy — leçon 24 sur 107.

challenge icon

Défi

Facile

Construisons une liste chaînée à partir de zéro ! Vous allez créer une structure de données où chaque nœud pointe vers le suivant, formant une chaîne de valeurs connectées en mémoire.

Vous organiserez votre code sur deux fichiers :

  • linkedlist.go : Définissez une structure Node avec les champs Value (int) et Next (*Node). Créez une structure LinkedList qui contient un pointeur vers le nœud Head. Implémentez ces méthodes sur *LinkedList :
    • Append - ajoute un nouveau nœud avec la valeur donnée à la fin de la liste
    • Prepend - ajoute un nouveau nœud avec la valeur donnée au début de la liste
    • Print - parcourt la liste et affiche toutes les valeurs séparées par -> , se terminant par nil
  • main.go : Lisez les valeurs de l'entrée, construisez une liste chaînée en ajoutant des nœuds à la fin (append) et au début (prepend), puis affichez la structure finale de la liste.

Les entrées suivantes seront fournies :

  • Ligne 1 : Première valeur à ajouter avec Append
  • Ligne 2 : Deuxième valeur à ajouter avec Append
  • Ligne 3 : Valeur à ajouter avec Prepend

Votre méthode Print doit afficher la liste dans ce format :

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

Par exemple, avec 10, 20, et 5, votre sortie devrait être :

5 -> 10 -> 20 -> nil

La méthode Append doit parcourir la liste jusqu'à la fin (où Next est nil) avant d'ajouter le nouveau nœud. La méthode Prepend doit créer un nouveau nœud, faire pointer son Next vers la tête actuelle, puis mettre à jour la tête vers le nouveau nœud. N'oubliez pas qu'une liste vide a une tête nil, gérez donc ce cas dans votre méthode Append.

Essayez vous-même

package main

import "fmt"

func main() {
	// Lire les valeurs d'entrée
	var val1, val2, val3 int
	fmt.Scanln(&val1)
	fmt.Scanln(&val2)
	fmt.Scanln(&val3)

	// Créer une nouvelle liste chaînée
	list := &LinkedList{}

	// TODO : Utiliser Append pour ajouter val1 et val2 à la liste

	// TODO : Utiliser Prepend pour ajouter val3 au début de la liste

	// TODO : Imprimer la structure finale de la liste
}

Toutes les leçons de Programmation Orientée Objet