Algoritmos
Program trabalho; uses crt;
const TAMMAX = 100; type tipoItemLista = string; tipoLista = record Vetor : array [1..TamMax] of tipoItemLista; Final : integer; end; tipoFila = Record pessoa : array [1..TamMax] of string; frente, final : integer; end;
apontElemento = ^tipoElemento; tipoElemento = Record revista : string; prox : apontElemento; end; tipoPilha = Record topo : apontElemento; fundo : apontElemento; end; (*Implementação da LISTA*) procedure inicLista (var Lista : tipoLista); {Inicia a lista colocando declarando o .Final como sendo o inicio do vetor} begin Lista.Final :=1; end; { inicLista }
procedure insereElemento (var Lista : tipoLista; Elemento: tipoItemLista; var log:text); {Insere o elemento na posição do .Final e o incrementa} begin if (Lista.Final < TAMMAX) then begin Lista.Vetor[Lista.Final] := Elemento; Lista.Final := Lista.Final+1; writeln(log,'O elemento ',Elemento,' foi adicionado a lista'); end else writeln ('A lista esta cheia'); writeln(log,'A lista esta cheia'); end; { insereElemento }
function vaziaLista (Lista : tipoLista) : boolean; {Através do posicionamento do .Final define se a lista está vazia ou cheia} begin if (Lista.Final = 1) then vaziaLista := TRUE else vaziaLista := FALSE; end; { vaziaLista }
procedure imprimeLista (Lista : tipoLista; var log:text); {Caso a lista não esteja vazia, imprime a lista atraves de um FOR} var i : integer; begin if (vaziaLista(Lista)) then begin writeln ('A lista esta vazia'); writeln(log,'A lista esta vazia'); end else begin for i:=1 to (Lista.Final - 1) do begin writeln (i,' - ', Lista.Vetor[i]); writeln (log, i,' - ',Lista.Vetor[i]);