LLC_Algo

Published on
Embed video
Share video
Ask about this video

Scene 1 (0s)

[Virtual Presenter] LISTES CHAÎNÉES – Algorithmique 1. Implémentation Dynamique Program ListeDynamique ; Type Maillon = record val : Entier ; suiv : ^Maillon ; // Pointeur vers le maillon suivant (adresse) End; TListe = ^Maillon ; // Définition du type pointeur vers un Maillon End ; // Déclaration des variables globales Variables L : TListe ; // Liste chaînée principale (tête de liste) //Procédure Allouer Procedure Allouer(var P : TListe) : // Objectif : réserver un espace mémoire pour un nouveau maillon // Entrée : aucune // Sortie : P pointe vers une nouvelle cellule (ou NIL Iféchec) Begin // Simule la réservation d’un nouvel espace mémoire // En langage algorithmique, on suppose qu’il existe un mécanisme "Allouer" Allouer_Memoire(P); If P = NIL Then Writeln("Erreur : mémoire insuffisante.") ; End ; End ; Procédure Libérer(var P : TListe) : // Objectif : libérer l’espace mémoire occupé par le maillon pointé par P // Entrée : P (adresse du maillon à supprimer) // Sortie : la mémoire est rendue au système Begin Libérer_Memoire(P) ; P ← NIL ; // Par sécurité : on met le pointeur à NIL End; Procédure AfficherListe(L : TListe) : // Objectif : afficher tous les éléments de la liste L // Entrée : L (liste à afficher) // Sortie : valeurs des éléments affichées à l’écran Begin While (L <> NIL) Do Writeln(L^.val) ; L ← L^.suiv ; End ; // Remarque : la tête n’est pas perdue car le passage est par valeur End ;.

Scene 2 (1m 46s)

[Audio] Procédure AjouterEnTête(var L : TListe ; x : Entier) : // Objectif : ajouter un nouvel élément E au Begin de la liste L // Entrées : L (liste existante), E (valeur à insérer) // Sortie : L modifiée, contenant le nouvel élément en tête Variables P : TListe ; // Pointeur temporaire vers le nouveau maillon Begin Allouer(P) ; // Réservation mémoire pour un nouveau maillon If P <> NIL Then P^.val ← x ; // Affecter la valeur à l'élément P^.Suiv ← L ; // Le nouveau maillon pointe vers l'ancienne tête L ← P ; // Mise à jour de la tête de liste Else Writeln("Erreur : impossible d'ajouter, mémoire pleine.") ; End ; End; Procédure AjouterEnfin(var L : TListe ; x : Entier) : // Objectif : ajouter un nouvel élément x à la fin de la liste L // Entrées : L (liste existante), x (valeur à insérer) // Sortie : L modifiée, contenant le nouvel élément à la fin Variables P, Cour : TListe ; // P : nouveau maillon à insérer // Cour : pointeur pour parcourir la liste Begin Allouer(P) ; // Réserver un espace mémoire pour le nouveau maillon IfP <> NIL Then P^.val ← x ;.