dcsimg
October 16, 2018
Hot Topics:

A Simple Stack Class

  • January 7, 2000
  • By Chris Eastwood
  • Send Email »
  • More Articles »

A Simple Stack Class


Author: Chris Eastwood
Author's WebSite: http://www.eastwood60.freeserve.co.uk

This class module functions as a simple stack that can be dropped straight into any project requiring a stack object.

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.

screen-shot

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)

Posted On: 7-Jan-2000






Comment and Contribute

 


(Maximum characters: 1200). You have characters left.

 

 


Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

By submitting your information, you agree that developer.com may send you developer offers via email, phone and text message, as well as email offers about other products and services that developer believes may be of interest to you. developer will process your information in accordance with the Quinstreet Privacy Policy.

Sitemap

Thanks for your registration, follow us on our social networks to keep up-to-date