Lista pascal

Solo disponible en BuenasTareas
  • Páginas : 3 (516 palabras )
  • Descarga(s) : 0
  • Publicado : 30 de mayo de 2011
Leer documento completo
Vista previa del texto
program lista;
unit listad;

INTERFACE

type
TElemL=integer;
pnodo=^nodo;
nodo=record
dato:TElemL;
sig:pnodo;
end;
tlista=record
pri,act:pnodo;
end;Procedure IniciaL(var l:tlista);
Function VaciaL (l:tlista):boolean;
Procedure PrimeroL (var l:tlista);
Procedure SiguienteL(var l:tlista);
Function FinL(l:tlista):boolean;
ProcedureInsertaL(var l:tlista;e:TElemL); {inserta al medio o al final}
Procedure InsertaPpioL(var l:tlista;e:TElemL);
Procedure InsertaFinL(var l:tlista;e:TElemL);
Procedure InsertaNL(var l:tlista; e:TElemL;n:integer);
Procedure EliminaPpioL(var l:tlista);
Procedure ELiminaL(var l:tlista);

Procedure EliminaNL(var l:tlista;var e:TElemL; n:integer);
Procedure InfoL(l:tlista; var e:TElemL);
ProcedureModificaL(var l:tlista; e:TElemL);

IMPLEMENTATION

procedure IniciaL;
begin
l.pri:=nil;
l.act:=nil;
end;

function VaciaL;
begin
vacial:=l.pri=nil;
end;

procedure PrimeroL;begin
l.act:=l.pri;
end;

procedure SiguienteL;
begin
l.act:=l.act^.sig;
end;

function FinL;
begin
finl:=l.act=nil;
end;

procedure InsertaL; {inserta almedio o al final}
var
aux,act,ant:pnodo;
begin
new(aux);
aux^.dato:=e;
if vacial(l) or (e act^.dato) do
begin
ant:=act;
act:=act^.sig;
end;ant^.sig:=aux;
aux^.sig:=act;
end;
end;

procedure InsertaPpioL;
var
aux:pnodo;
begin
new(aux);
aux^.dato:=e;
aux^.sig:=l.pri;
l.pri:=aux;
end;

ProcedureInsertaFinL;
var
ant,act,aux:pnodo;
begin
new(aux);
aux^.dato:=e;
ant:=l.pri;
act:=ant;
while act nil do
begin
ant:=act;
act:=act^.sig;
end;
ant^.sig:=aux;aux^.sig:=act;
end;

procedure InsertaNL;
var
aux,ant,act:pnodo;
cont:integer;
begin
new(aux);
aux^.dato:=e;
if n=1 then {si es el nodo 1}...
tracking img