📄 stack.pas
字号:
unit Stack;interfaceuses SysUtils, Types, Classes;type TStack = class( TObject ) protected FCount: Integer; FItems: array of Real; public constructor Create(); overload; constructor Create( Size: Integer ); overload; procedure Clear(); procedure Push( Item: Real ); function Pop( var Item: Real ): Boolean; function Peek( var Item: Real ): Boolean; function IsEmpty(): Boolean; destructor Destroy(); end;implementation{ TStack }constructor TStack.Create;begin FCount := 0; SetLength( FItems, 0 );end;procedure TStack.Clear;begin if Assigned( FItems ) then begin FCount := 0; FItems := nil; end;end;constructor TStack.Create(Size: Integer);begin FCount := 0; SetLength( FItems, Size );end;destructor TStack.Destroy;begin if Assigned( FItems ) then begin FItems := nil; end;end;function TStack.IsEmpty: Boolean;begin Result := ( FCount = 0 );end;function TStack.Peek( var Item: Real ): Boolean;begin if FCount > 0 then begin Item := FItems[ FCount - 1 ]; Result := true; end else begin Result := false; end;end;function TStack.Pop( var Item: Real ): Boolean;begin if FCount > 0 then begin Item := FItems[ FCount - 1 ]; FItems := Copy( FItems, 0, FCount - 1 ); Dec( FCount ); Result := true; end else begin Result := false; end;end;procedure TStack.Push(Item: Real);begin if Length( FItems ) <= FCount then SetLength( FItems, FCount + 1 ); FItems[ FCount ] := Item; Inc( FCount );end;end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -