Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:АСОИ, Delphi, много вариантов 2 сем / 2стеки / максим число + место / Ustack
.pas unit Ustack;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Buttons,Math;
type
Tsel=^Ts;
Ts=record
inf:word;
a:Tsel;
end;
TStack=class(Tobject)
Constructor Create;
procedure AddStack(var Sp:TSel; S:integer);
procedure ReadStack(var Sp:TSel; s:integer);
end;
var
s,stack:Tsel;
bl:boolean;
const n=10;
implementation
Constructor Tstack.Create;
begin
Inherited Create;
end;
procedure Tstack.AddStack(var Sp:TSel; S:integer); //добавить элемент в стек
var Spt:TSel;
begin
New(spt);
spt^.inf:=s;
spt^.a:=Sp;
Sp:=spt; //указатель на вершину
end;
Procedure Tstack.ReadStack(var Sp:TSel; s:integer); //читает стек
var spt:TSel;
begin
if Sp=nil then ShowMessage('Стек пуст')
else begin
S:=Sp^.inf; //извлечение из стека строки
Spt:=Sp;
Sp:=Sp^.a; //указ. на предыдуший элемент
Dispose(Spt);
end;
end;
end.
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Buttons,Math;
type
Tsel=^Ts;
Ts=record
inf:word;
a:Tsel;
end;
TStack=class(Tobject)
Constructor Create;
procedure AddStack(var Sp:TSel; S:integer);
procedure ReadStack(var Sp:TSel; s:integer);
end;
var
s,stack:Tsel;
bl:boolean;
const n=10;
implementation
Constructor Tstack.Create;
begin
Inherited Create;
end;
procedure Tstack.AddStack(var Sp:TSel; S:integer); //добавить элемент в стек
var Spt:TSel;
begin
New(spt);
spt^.inf:=s;
spt^.a:=Sp;
Sp:=spt; //указатель на вершину
end;
Procedure Tstack.ReadStack(var Sp:TSel; s:integer); //читает стек
var spt:TSel;
begin
if Sp=nil then ShowMessage('Стек пуст')
else begin
S:=Sp^.inf; //извлечение из стека строки
Spt:=Sp;
Sp:=Sp^.a; //указ. на предыдуший элемент
Dispose(Spt);
end;
end;
end.