📄 queue.pas
字号:
unit queue;
interface
uses
windows;
type
TPosition=^NodeType;
NodeType=record
Element:pchar;
next:TPosition;
end;
QueueType=record
front,rear:TPosition;
end;
type
Tqueue = class(TObject)
private
public
Q:QueueType;
Procedure MakeNull;//初始化队列
Function Empty(var t:QueueType):Boolean;//空队列
Procedure Enqueue(x:pchar);//将元素x插入队列Q的队尾
Procedure Dequeue;//出队
Function Front:pchar; //返回队列Q的队头元素
end;
implementation
Procedure Tqueue.MakeNull;//初始化队列
begin
Q.rear:=Q.front;
while Q.front<>nil do
begin
Q.front:=Q.front^.next;
dispose(Q.rear);
Q.rear:=Q.front;
end;
new(Q.front);
Q.front^.next:=nil;
Q.rear:=Q.front;
end;
Function Tqueue.Empty(var t:QueueType):Boolean;//空队列
begin
if Q.front=Q.rear then result:=true else result:=false;
end;
Procedure Tqueue.Enqueue(x:pchar);//将元素x插入队列Q的队尾
begin
new(Q.rear^.next);
Q.rear:=Q.rear^.next;
Q.rear^.Element:=x;
Q.rear^.next:=nil;
end;
Procedure Tqueue.Dequeue;//出队
var
p:TPosition;
begin
if Empty(Q) then
begin
exit;
end
else
begin
new(p);
p:=Q.front;
Q.front:=Q.front^.next;
dispose(p);
end;
end;
Function Tqueue.Front():pchar; //返回队列Q的队头元素
begin
if Empty(Q) then
begin
exit;
end
else
result:=(Q.front^.next^.Element);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -