unit stack; interface type item = char; TStack = class StackArray : array of item; constructor Create; procedure StackPush(p: item); function StackPop: item; function IsEmpty: boolean; end; implementation //****************************************************************************** constructor TStack.Create; begin setlength(self.StackArray,0); //nastaveni delky pole na 0 end; //****************************************************************************** procedure TStack.StackPush(p: item); begin setlength(StackArray,length(StackArray)+1); StackArray[high(StackArray)] := p; end; //****************************************************************************** function TStack.StackPop: item; begin StackPop := StackArray[high(StackArray)]; setlength(StackArray,length(StackArray)-1); end; //****************************************************************************** function TStack.IsEmpty: boolean; begin IsEmpty := length(StackArray)=0; end; end.