simpleQ

marcDouglas 2020-02-23 A simple Queue object.

oo::class create simpleQ {
        variable q
        constructor {  } {
                set q {}
        }
        method pop { } {
                set value [lindex $q end] 
                set q [lreplace $q end-1 end]
                return $value
        }
        method qpop { } {
                set value [lindex $q 0] 
                set q [lreplace $q 0 0]
                return $value
        }
        method push { value } {
                lappend q $value
        }
}

Usage is simple..

set qObject [simpleQ new]
$qObject push "qText1"
$qObject push "qText2"
$qObject push "qText3"
$qObject push "qText4"
$qObject push "qText5"
puts "pop... [$qObject pop]"
puts "qpop... [$qObject qpop]"