Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!

Idiom #293 Create a stack

Create a new stack s, push an element x, then pop the element into the variable y.

var s = [];
s.add(x);
var y = s.removeLast();
type Stack[T any] struct {
	items []T
}

func (s *Stack[T]) Push(t T) {
	s.items = append(s.items, t)
}

func (s *Stack[T]) Pop() T {
	n := len(s.items)
	t := s.items[n-1]
	var zero T
	s.items[n-1] = zero
	s.items = s.items[:n-1]
	return t
}

var s = new(Stack[string])
s.Push(x)
y := s.Pop()
const s = [1, 2, 3];
s.push(x);
const y = s.pop();
import java.util.Stack;
Stack<T> s = new Stack<>();
s.push(x);
T y = s.pop();
uses contnrs;
s := TStack.Create;
s.Push(x);
y := s.Pop;
use strict;
my @s;
push @s, $x;
my $y = pop @s;
s = []
s.append(x)
y = s.pop()
s = []
s.push(x)
y = s.pop
let mut s: Vec<T> = vec![];
s.push(x);
let y = s.pop().unwrap();

New implementation...
< >
programming-idioms.org