# IIntfStack/IStrStack/IStack

## Unit

DCL_intf

## Inheritance

Base interface

## Methods

### IIntfStack

`function Contains(AObject: IInterface): Boolean;
function Empty: Boolean;
function Pop: IInterface;
procedure Push(AObject: IInterface);
function Size: Integer;
`

### IStrStack

`function Contains(const AString: string): Boolean;
function Empty: Boolean;
function Pop: string;
procedure Push(const AString: string);
function Size: Integer;
`

### IStack

`function Contains(AObject: TObject): Boolean;
function Empty: Boolean;
function Pop: TObject;
procedure Push(AObject: TObject);
function Size: Integer;
`

## Description

A stack is a LIFO (Last In / First Out) container.

Method | Description
--- | ---
Contains | Return True if AObject is contained in the stack.
Empty | Return True the stack contained no object.
Pop | Return the top object of the stack.
Push | Add AObject at the top of the stack.
Size | Return the number of objects in the stack.

## Implemented By

- Stack