# stack(n) 1.2.1 struct "Tcl Data Structures"

## NAME

stack - Create and manipulate stack objects

## SYNOPSIS

package require Tcl 8.2
package require struct ?1.2.1?

stackName option ?arg arg ...?
stackName clear
stackName destroy
stackName peek ?count?
stackName pop ?count?
stackName push item ?item ...?
stackName size

## DESCRIPTION

The ::struct::stack command creates a new stack object with an associated global Tcl command whose name is stackName. This command may be used to invoke various operations on the stack. It has the following general form:

stackName option ?arg arg ...?
  Option and the args determine the exact behavior of the command. The following commands are possible for stack objects:
stackName clear
  Remove all items from the stack.
stackName destroy
  Destroy the stack, including its storage space and associated command.
stackName peek ?count?
  Return the top count items of the stack, without removing them from the stack. If count is not specified, it defaults to 1. If count is 1, the result is a simple string; otherwise, it is a list. If specified, count must be greater than or equal to 1. If there are no items on the stack, this command will return count empty strings.
stackName pop ?count?
  Return the top count items of the stack, and remove them from the stack. If count is not specified, it defaults to 1. If count is 1, the result is a simple string; otherwise, it is a list. If specified, count must be greater than or equal to 1. If there are no items on the stack, this command will return count empty strings.
stackName push item ?item ...?
  Push the item or items specified onto the stack. If more than one item is given, they will be pushed in the order they are listed.
stackName size
  Return the number of items on the stack.

## KEYWORDS

queue, matrix, tree, graph