Menu
Coddy logo textTech

Récapitulatif - Constructeur de listes chaînées

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 ! Tu vas 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.

Tu organiseras ton code sur deux fichiers :

  • linkedlist.go : définis une structure Node avec les champs Value (int) et Next (*Node). Crée une structure LinkedList qui contient un pointeur vers le nœud Head. Implémente 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 -> , en terminant par nil
  • main.go : lis les valeurs saisies, construis une liste chaînée en ajoutant et en insérant des nœuds, puis affiche la structure finale de la liste.

Les entrées suivantes seront fournies :

  • Ligne 1 : première valeur à ajouter
  • Ligne 2 : deuxième valeur à ajouter
  • Ligne 3 : valeur à insérer au début

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

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

Par exemple, avec 10, 20 et 5, ta sortie doit être :

5 -> 10 -> 20 -> nil

La méthode Append doit parcourir la liste jusqu'à sa fin (là où Next vaut 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 avec le nouveau nœud. N'oublie pas qu'une liste vide possède une tête nil : tu dois donc gérer ce cas dans ta 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

Entraînez-vous par vous-même : Compilateur Go en ligne