A Simple Stack Class
Posted
by Chris Eastwood
on October 13th, 2003
The class contains an internal collection of objects (variants) - you can simply change the data types passed in through the Push method and returned from the Pop method to use any data type you like.
The Push / Pop functionality comes from using the internal Collections Add method with the underused 'Before' parameter set as 1.
Simply paste the code into a class module with a relevant name, eg. cStack and you can use it straight away in your projects :
option Explicit
'
' cStack.cls
'
' This class implements a simple stack structure -
' at the moment it only uses a variant item in the
' collection, but of course you can use any
' variable / object type you like!
'
' Our Internal Collection
'
private mStackCollection as Collection
private Sub Class_Initialize()
'
' Create the internal collection
'
set mStackCollection = new Collection
End Sub
private Sub Class_Terminate()
'
' Kill off the internal collection
'
set mStackCollection = nothing
End Sub
public Sub Push(byval vData as Variant)
'
' Push an item onto the stack
'
'
' If there's stuff already on the stack, then
' insert the new item before the first item
'
If mStackCollection.Count > 0 then
mStackCollection.Add vData, , 1
else
'
' Otherwise, just add it to the stack as the first item
'
mStackCollection.Add vData
End If
End Sub
public Function Pop() as Variant
'
' 'Pop' an item off the stack
'
If mStackCollection.Count > 0 then
If IsObject(mStackCollection.Item(1)) then
set Pop = mStackCollection.Item(1)
else
Pop = mStackCollection.Item(1)
End If
'
' Don't forget to remove the item from the stack
' once it's been popped !
'
mStackCollection.Remove 1
else
Err.Raise vbObjectError + 4999, "cStack::Pop", _
"Stack is empty"
End If
End Function
public property get StackCount() as Long
'
' Number of items in stack
'
StackCount = mStackCollection.Count
End property
'
'
Download Zipped Project File containing class and sample(5k)

Comments
STACK CLASS GIVES AN ERROR !!!
Posted by Legacy on 05/09/2001 12:00amOriginally posted by: Siddharth.S.Pawar
Hello,
I downloaded your stack class and found some error in it.If the stack is totally empty and still u perform the pop operation,it gives an Run-Time error.I have fixed that error at my place,if u want the code,please contact me...
Anyway,
ReplyTHANKS FOR YOUR STACK CLASS......????