Gestion d'une pile

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 501 fois - Téléchargée 38 fois

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

Ajouter un commentaire

Commentaires

gg00xiv
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
11 -
si vous avez des problemes ou kil y a un bug n'hesiter pas a le faire savoir, je corrigerer
Weado
Messages postés
119
Date d'inscription
mercredi 19 juin 2002
Statut
Membre
Dernière intervention
21 avril 2009
-
euhh oui ya un problème on voit rien sur ta photo ;p
gg00xiv
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
11 -
c normal lol, g essayer de mettre un gif animé renommer en .jpg, sur winXP il capte, mais pas sur ce site, donc tanpis, jorer essayer kan meme :)
Alan71
Messages postés
530
Date d'inscription
lundi 3 juin 2002
Statut
Membre
Dernière intervention
13 juin 2004
-
Weado> je te rassure, la tienne n'est pas bcp mieux (la mienne nan plus :) )

Tu simule de l'assembleur ou koi ? (sinon, ya une put1 de source, C un trophée, regardez !)
gg00xiv
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
11 -
non une pile c une pile, c pas de l'assembleur. cun objet ki existe dans les lib standard dans pas mal de languages.

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.