partir do exemplo apresentado na aula de hoje, que trata de uma lista simplesmente encadeada, na linguagem pascal, faça as seguintes adaptações no algoritmo:
- Inclua um nó descritor e faça a alimentação atualizando o algoritmo.
- Inclua dois procedimentos para EXCLUSÃO considerando os dois padrões LIFO e FIFO
CODE <>
program LISTLIG2;
uses
Crt;
type
LISTA = ^DADOS;
DADOS = record
NOME : string;
SALARIO : real;
TEMPO : integer;
PROX : lista;
end;
var
P,X,Y : LISTA;
I, LINHA : longint;
RESP : char;
procedure LEITURA(LISTA_LEITURA:LISTA);
var
z: LISTA;
begin
clrscr;
I := 1;
LINHA := 3;
gotoxy( 1, 1); write('REGISTRO');
gotoxy( 6, 1); write('Nome');
gotoxy(46, 1); write('Salario');
gotoxy(61, 1); write('Tempo de Servico');
Z := LISTA_LEITURA;
while (Z <> nil) do
begin
gotoxy( 1,LINHA); writeln(I:4);
gotoxy( 6,LINHA); writeln(Z^.NOME);
gotoxy(46,LINHA); writeln(Z^.SALARIO:6:2);
gotoxy(61,LINHA); writeln(Z^.TEMPO);
Z := Z^.PROX;
LINHA := LINHA + 1;
I := I + 1;
end;
writeln('Tecle qualquer coisa para encerrar...');
readln;
end;
begin
I := 1;
X := nil;
repeat
clrscr;
writeln('CADASTROS DE FUNCIONARIO');
writeln;
new(X);
writeln('Entre o ',I:4,'o. registro');
writeln;
write('Nome ..............: ');
readln(X^.NOME);
write('Salario ...........: ');
readln(X^.SALARIO);
write('Tempo de Servico ..: ');
readln(X^.TEMPO);
if (P = nil) then
begin
P := X;
end
else
begin
y := P;
if (y^.PROX <> nil) then
while not(Y^.PROX = nil) do
Y := Y^.PROX;
end;
Y^.PROX := X;
I := I + 1;
writeln;
writeln('Deseja continuar? [S]im ou [N]ao: '); readln(RESP);
until (UpCase(RESP) = 'N');
writeln; writeln;
writeln('Deseja realizar exibir os cadastros na tela(s/n)?');
readln(RESP);
if(upcase(RESP) = 'S') then
LEITURA(P);
end.