Skip to content

Instantly share code, notes, and snippets.

@swuecho
Created August 4, 2012 19:02
Show Gist options
  • Save swuecho/3259339 to your computer and use it in GitHub Desktop.
Save swuecho/3259339 to your computer and use it in GitHub Desktop.
Min Stack
class Minstack {
has @.stack;
has @.min;
method mpush($item) {
push @.stack, $item;
if @.min==0 or @.min[*-1] > $item {
push @.min, $item;
}
}
method mpop() {
my $item=pop @.stack;
if $item == @.min[*-1] {
pop @.min;
}
return $item;
}
method mmin() {
@.min[*-1];
}
}
my $min=Minstack.new;
$min.mpush(5);
$min.mpush(3);
$min.mpush(10);
say $min.mpop();
say $min.mmin();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment