PROCEDURE SUBLISTAS(L : LInt) : ListLInt; VAR nuevalista, anterior, nodo : ListLInt; iter:LInt; p1, p2, largo : CARDINAL; BEGIN iter:=l; largo:=1; (* Calculo largo de la lista L*) WHILE iter^.sig<>NIL DO BEGIN largo:=largo+1; iter:=iter^.sig; END; (* L no es vacĂ­a por tanto creo el primer nodo de la lista ListLInt a devolver *) NEW(nodo); nodo^.lista:=SUBLISTA(l,largo,largo); nodo^.sig:=NIL; nuevalista:=nodo; anterior:=nodo; FOR p1:=1 TO largo-1 DO FOR p2:=p1 TO largo DO NEW(nodo); nodo^.lista:=SUBLISTA(l,p1,p2); nodo^sig:=NIL; anterior^.sig:=nodo; anterior:=nodo; END; END; RETURN nuevalista; END SUBLISTAS;