Тема: Робота зі стеком у окремому модулі (PascalABC)
Всім добрий вечір. Почали в школі вивчати із паскалю стеки та черги. Щоб на практичній було легше вирішив вдома створити модуль.
unit stek_cher;
interface
type
PStack = ^Stack;
Stack = record
data: integer;
next: PStack;
end;
PQueue = ^Queue;
Queue = record
data: integer;
next: PQueue;
end;
TQueue = record
head: PQueue;
tail: PQueue;
end;
var
a: PStack;
i, el: integer;
q: PQueue;
procedure CreateStack(var s: PStack);
function pop(var s: PStack; var elem: integer): boolean;
function push(var s: PStack; elem: integer): boolean;
procedure chutanna_bez_vydalanna(s: PStack);
procedure CreateQueue(var q: TQueue);
function add(var q: TQueue; elem: integer): boolean;
function del(var q: TQueue; var elem: integer): boolean;
implementation
procedure CreateStack(var s: PStack);
begin
s := nil;
end;
function pop(var s: PStack; var elem: integer): boolean;
var
temp: PStack;
begin
if s = nil then pop := false else
begin
pop := tru;
elem := s^.data;
temp := s;s := s^.next;
dispose(temp);
end;
end;
function push(var s: PStack; elem: integer): boolean;
var
temp: PStack;
begin
new(temp);
temp^.data := elem;
temp^.next := s;
s := temp;
push := true;
end;
procedure chutanna_bez_vydalanna;
begin
while s^.data mod 2 = 1 do
begin
write(s^.data, ' ');
s := s^.next;
end;
end;
procedure CreateQueue(var q: TQueue);
begin
q.head := nil;
q.tail := nil;
end;
function add(var q: TQueue; elem: integer): boolean;
var
temp: PQueue;
begin
new(temp);
temp^.data := elem;
temp^.next := nil;
if q.head = nil then q.head := temp else q.tail := temp;
add := true;
end;
function del(var q: TQueue; var elem: integer): boolean;
var
temp: PQueue;
begin
if(q.head = nil) and (q.tail = nil) then del := false else
begin
elem := q.head^.data;
temp := q.head;
q.head := q.head^.next;
dispose(temp);
if q.head = nil then q.tail := nil;
del := true;
end;
end;
end.
Начебто все добре, проте при компіляції видає, що у 6-ій лінійці очікувався тип, себто
PStack = ^Stack; і
PQueue = ^Queue;
воно не розуміє. Підкажіть, будь ласка, що робити.