Stack: Difference between revisions

Content added Content deleted
(→‎{{header|6502 Assembly}}: Fix offset for peek operation.)
(→‎{{header|UNIX Shell}}: Add implementation)
Line 5,917: Line 5,917:
you
you
me</lang>
me</lang>

=={{header|UNIX Shell}}==
{{works with|Bourne Again SHell}}
{{works with|Zsh}}
{{works with|Korn Shell}}

<lang sh>init() { stack=(); }

push() {
local item=$1
stack=("$item" "${stack[@]}")
}

stack_top() {
# this approach sidesteps zsh indexing difference
set -- "${stack[@]}"
printf '%s\n' "$1"
}

pop() {
stack_top
stack=("${stack[@]:1}")
}

empty() {
(( ${#stack[@]} == 0 ))
}

# Demo
push fred; push wilma; push betty; push barney
printf 'peek(stack)==%s\n' "$(stack_top)"
while ! empty; do
pop
done</lang>

{{Out}}
<pre>peek(stack)==barney
barney
betty
wilma
fred</pre>


=={{header|VBA}}==
=={{header|VBA}}==