Definição da Estrutura de Dados
Type
pilha = array [1..maxp] of T;
indice = 0 .. maxp;
Var
P: pilha;
topo: indice;
-> Refazer as operações abaixo, para o caso da pilha ser definida da seguinte estrutura:
Type
aloc_pilha = array [1..maxp]
of T;
indice = 0 .. maxp;
pilha = record
info: aloc_pilha;
topo: indice;
end;
Var
P: pilha;
procedure criar (Var topo:indice); begin topo := 0; end;2. inserir (x, P) - insere x no topo de P(empilha): push (x, P).
procedure push (x:T; var P: pilha; Var topo: indice); begin if topo = maxp then "PILHA CHEIA" else begin topo := topo + 1; P[topo] := x; end end;3. vazia (P) - testa se P está vazia
function vazia (topo: indice): boolean; begin vazia := (topo = 0); end;4. topo (P) - acessa o elemento do topo da pilha (sem eliminar)
procedure top (Var topo_p: T; Var P:pilha; topo:indice); begin if vazia(topo) then "PILHA VAZIA" else topo_p := P[topo]; end;5. elimina (P) - elimina o elemento do topo de P (desempilha): pop (P)
procedure pop (Var topo:indice; Var P:pilha); begin if vazia(topo) then "PILHA VAZIA" else topo = topo-1; end;Devolve elemento eliminado
procedure pop_up (var P:pilha; var topo:indice):T; begin if vazia(topo) then "PILHA VAZIA" else begin pop_up:= P[topo]; {no caso de acesso ao elemento} topo = topo-1; end; end;-> Responda: do ponto de vista do TAD, qual das duas organizações de pilha exemplificadas acima