Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,101 @@
program fifo(input, output);
type
pNode = ^tNode;
tNode = record
value: integer;
next: pNode;
end;
tFifo = record
first, last: pNode;
end;
procedure initFifo(var fifo: tFifo);
begin
fifo.first := nil;
fifo.last := nil
end;
procedure pushFifo(var fifo: tFifo; value: integer);
var
node: pNode;
begin
new(node);
node^.value := value;
node^.next := nil;
if fifo.first = nil
then
fifo.first := node
else
fifo.last^.next := node;
fifo.last := node
end;
function popFifo(var fifo: tFifo; var value: integer): boolean;
var
node: pNode;
begin
if fifo.first = nil
then
popFifo := false
else
begin
node := fifo.first;
fifo.first := fifo.first^.next;
value := node^.value;
dispose(node);
popFifo := true
end
end;
procedure testFifo;
var
fifo: tFifo;
procedure testpop(expectEmpty: boolean; expectedValue: integer);
var
i: integer;
begin
if popFifo(fifo, i)
then
if expectEmpty
then
writeln('Error! Expected empty, got ', i, '.')
else
if i = expectedValue
then
writeln('Ok, got ', i, '.')
else
writeln('Error! Expected ', expectedValue, ', got ', i, '.')
else
if expectEmpty
then
writeln('Ok, fifo is empty.')
else
writeln('Error! Expected ', expectedValue, ', found fifo empty.')
end;
begin
initFifo(fifo);
pushFifo(fifo, 2);
pushFifo(fifo, 3);
pushFifo(fifo, 5);
testpop(false, 2);
pushFifo(fifo, 7);
testpop(false, 3);
testpop(false, 5);
pushFifo(fifo, 11);
testpop(false, 7);
testpop(false, 11);
pushFifo(fifo, 13);
testpop(false, 13);
testpop(true, 0);
pushFifo(fifo, 17);
testpop(false, 17);
testpop(true, 0)
end;
begin
writeln('Testing fifo implementation ...');
testFifo;
writeln('Testing finished.')
end.