Gestion d'une pile

Contenu du snippet

Ce code se compose d'un module de classe et d'un module normal contenant un "sub main".
Il faut donc supprimer la Form1 qui est créee par défaut et ajouter un module, le projet se mettra automatiquement en démarrage sur "sub main" de ce module. Il faut donc bien créer un "sub main".

Le module de classe contient deux variables privees et 3 fonctions publique permettant de faire fonctionner cette pile.
Push : ajoute une element a la pile
Pop : preleve un element a la iple
IsEmpty : verifie si la pile contient ou non des elements

La pile fonctionne sur un modele LIFO (Last In First Out), c'est a dire que le dernier element placé sur la pile sera le premier "popé" (extrait, prelevé).

Le module de classe est ici nommé "Stack" n'oublier pas de renseigner la propriété Name du module de classe a cette valeur.

Source / Exemple :


'MODULE DE CLASSE (STACK)
Private table()
Private current_element As Long

Public Sub Push(ByVal element)
    current_element = current_element + 1
    ReDim Preserve table(1 To current_element)
    table(current_element) = element
End Sub

Public Function Pop()
    Pop = table(current_element)
    current_element = current_element - 1
    If current_element <> 0 Then
        ReDim Preserve table(1 To current_element)
    End If
End Function

Public Function IsEmpty() As Boolean
    If current_element = 0 Then
        IsEmpty = True
    Else
        IsEmpty = False
    End If
End Function

'MODULE DE DEMARRAGE (MODULE1)
Sub main()
    Dim s As New Stack
    
    s.Push "salut"
    s.Push 5
    s.Push -1.23
    
    While Not s.IsEmpty
        Debug.Print "pop : ", s.Pop
        DoEvents
    Wend

End Sub

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.