Une classe qui permets de gérer une Pile ou une File du genre :
LIFO : Last Input -> First Output
FIFO : First Input -> First Output
Ce qui permets de gérer des fonctions pseudo récursive ou à faire bien dautre chose ;-)
Source / Exemple :
Option Explicit
' Romuald Alias Icem@n
' © 2001
' Version 1.2.1 11/03/2002
'
' dans le code :
' definition :
' dim pile as clsFIFOLIFO_Col
' instanciation :
' set pile = new clsFIFOLIFO_Col
Dim colPile As Collection
Private Sub Class_Initialize()
' Instanciation de l'objet
Set colPile = New Collection
End Sub
Private Sub Class_Terminate()
' Supprime l'objet
Set colPile = Nothing
End Sub
Public Function PileIsEmpty() As Boolean
PileIsEmpty = Not CBool(colPile.Count)
End Function
Public Sub Empile(strValue As String)
' Ajoute un element au sommet de la pile (ou de la file)
colPile.Add strValue
End Sub
Public Sub Enfile(strValue As String)
' Ajoute un element au bas de la pile (ou de la file)
colPile.Add strValue, , , colPile.Count
End Sub ' dans le cas d'une pile : FIFO (First Input First Output)
Public Function Depile() As String
Depile = vbNull
' si la pile n'est pas vide
If colPile.Count <> 0 Then
' prend le dernier élément empilé
Depile = colPile.Item(1)
' et le supprime de la pile
colPile.Remove 1
End If
End Function
' dans le cas d'une file : LIFO (Last Input First Output)
Public Function Defile() As String
Defile = vbNull
' si la file n'est pas vide
If colPile.Count <> 0 Then
' prend le premier élément empilé (enfilé)
Defile = colPile.Item(colPile.Count)
' et le supprime de la pile
colPile.Remove colPile.Count
End If
End Function
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.