informatica |
PILA
Dichiarazione
Type elemento= string[1]
Punta=^tipopila;
tipopila=record
dato:elemento;
p:punta;
end
tpila=class
cima:punta;
function pilavuota:boolean;
constructor creapila;
procedure inserisci(ele:elemento);
procedure estrai(var ele:elemento;var err:boolean);
end;
implementazione
constructor tpila.creapila;
begin
cima:=nil;
end;
function tpila.pilavuota:boolean;
begin
if cima=nil then
pilavuota:=true
else
pilavuota:=false;
end if
end
procedure tpila.inserisci(ele:elemento)
var p1:punta;
begin
new(p1);
p1^.dato:=ele;
if pilavuota then
begin
cima:=p1;
p1^.punt :=nil ;
end
else
begin
p1^.p :=cima;
cima:=p1;
end
endif
end
procedure tpila.estrai(var ele:elemento;var err:boolean)
var p1:punta;
begin
if pilavuota then
err:=true;
else
err:=false;
p1=cima;
ele=cima^.dato;
cima=cima^.punt;
dispose(p1);
end;
end;
DICHIARAZIONE
Type elemento=string[1];
punta=^tipocoda;
tipocoda=record
dato:elemento;
punt:punta;
end;
tcoda=class
cima,fondo:punta;
constructor creacoda;
function codavuota:boolean;
procedure inserisci(ele:elemento);
procedure vedicima(var ele:elemento;var err:boolean);
procedure scoda(var err:boolean);
end type;
implementation
constructor tcoda.creacoda;
begin
cima:=nil;
fondo:=nil;
end;
function tcoda.codavuota:boolean;
begin
if cima=fondo then
codavuota:=true
else
codavuota:=false;
end if
end
procedure tcoda.inserisci(ele:elemento);
var p1:punta;
begin
new(p1);
p1^.dato=ele;
p1^.punt=nil;
if codavuota then
cima=p1;
fondo=p1;
else
fondo^.punt=p1;
fondo=p1;
end if
end
procedure tcoda.vedicima(var ele:elemento;var err:boolean);
begin
if codavuota then
err:=true
else
err:=false;
ele=cima^.dato;
end if
end
procedure tcoda.elimina(var err:boolean)
var p1:punta;
begin
if codavuota then
err:=true
else
err:=false;
p1=cima;
cima:=cima^.punt;
dispose(p1);
end if
end
DICHIARAZIONE
Type ele=string[1];
punta=^tipolista;
tipolista=record
dato:ele;
punt:punta;
end;
tlista=class
lista:punta;
constructor crealista;
function listavuota:boolean;
procedure inserisci(ele:elemento);
procedure elimina(var trovato:boolean;var err:boolean;ele:elemento)
procedure cerca stampa(ele:elemento;var err:boolean)
end;
IMPLEMENTAZIONE
constructor tlista.crealista
begin
Lista=nil;
end;
funtion tlista.listavuota:boolean;
begin
if lista=nil then
listavuota=true
else listavuota=false
end
Procedure tlista.inserisci(ele:elemento);
var p1,prec,succ:punta;
begin
new(p1);
p1^.dato=ele
if listavuota then
begin
p1^.punt=nil
lista=p1
end
else
if ele<lista^.dato then
p1^.punt=lista
lista=p1
else
prec=lista
succ=lista^.punt
while (succ<>nil)and (ele<succ^.dato) then
begin
prec=suc
succ=succ^.punt
end
p1^.punt=succ
prec^.punt=p1
end
end
procedure tlista.elimina(var trovato,err:boolean; ele:elemento)
var prec,succ,app:punta
begin
if listavuota then
err=true
else
err=false
app=lista
if lista^.dato=ele then
app=lista
lista=lista^.punt
dispose(app)
else
begin
prec=lista
succ=lista^.punt
trovato=false
while (succ^.dato<>ele)and(suc^.punt<>nil) do
begin
prec=succ
succ=suc^.punt
if succ^.dato=ele then trovato=true
end
if trovato=true then
prec^.p=succ^.p
dispose(succ)
end
end
end
Type elemento=<Ele>
punta = ^nodo
nodo=record
dato:ele
ps:punta
pd:punta
end
albero =class
radice:punta
constructor creaalbero
function alberovuoto:boolean
procedure visita-pre(rad:punta)
procedure visita-sim(rad:punta)
procedure visita-post(rad:punta)
procedure inserisci(rad:punta;ele:elemento)
end
implementation
constructor creaalbero;
begin
radice=nil;
end
procedure visita-pre(rad:punta)
begin
if alberovuoto then
write(rad^.dato)
visita-pre(rad^.ps)
visita-pre(rad^.pd)
end if
end
procedure visita-post(rad:punta)
begin
if alberovuoto then
write(rad^.dato)
visita-post(rad^.ps)
visita-post(rad^.pd)
end if
end
procedure visita-sim(rad:punta)
begin
if alberovuoto then
visita-sim(rad^.ps)
write(rad^.dato)
visita-sim(rad^.pd)
end if
end
procedure inserisci(var rad:punta;ele:elemento);
var p,j,i:punta;
begin
new(p)
p^.dato=ele
p^.ps=nil
p^.pd=nil
if alberovuoto then
radice=p
else
i=radice
while i<>nil do
j=i
if i^.dato<ele then
i=i^.pd
else
i=i^.ps
end if
end while
if j^.dato<ele then
j^.pd=p
else
j^.ps=p
end if
end if
end
Privacy
|
© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta