lista sencilla
Publicado por micky (1 intervención) el 04/06/2010 00:57:27
Enunciado
Completar la función pmaximo para que devuelva la dirección de memoria del elemento que almacene el valor mayor en el campo dato de una lista dinámica simple a cuyo primer elemento apunta la variable puntero p. En el caso de que la lista esté vacía debe devolverse el valor nil.
Nota: si dos o más elementos contienen el mismo valor maximo, entonces la función debe devolver la dirección del memoria del primero de ellos que se encuentre en la lista.
type ptr=^elemento;
elemento=record
dato:integer;
sig:ptr
end;
Function pmaximo (p:ptr): ptr;
var aux:ptr;
max:integer
BEGIN
-------------(Aqui comienza la zona que debo rellenar, lo anterior es fijo e inamovible)--------
If p=nil then pmaximo:=nil else
BEGIN
max:=p^.dato;
aux:=p;
While p<>nil do
BEGIN
p:=p^.sig;
if p^.dato>max then
BEGIN
max:=p^.dato;
aux:=p;
end;
end;
end;
pmaximo:=aux;
-----------------------------------------------
END;
compila pero la solucion no es correcta, hay algun pequeño error sospecho pero no lo localizo.
Un Saludo
Completar la función pmaximo para que devuelva la dirección de memoria del elemento que almacene el valor mayor en el campo dato de una lista dinámica simple a cuyo primer elemento apunta la variable puntero p. En el caso de que la lista esté vacía debe devolverse el valor nil.
Nota: si dos o más elementos contienen el mismo valor maximo, entonces la función debe devolver la dirección del memoria del primero de ellos que se encuentre en la lista.
type ptr=^elemento;
elemento=record
dato:integer;
sig:ptr
end;
Function pmaximo (p:ptr): ptr;
var aux:ptr;
max:integer
BEGIN
-------------(Aqui comienza la zona que debo rellenar, lo anterior es fijo e inamovible)--------
If p=nil then pmaximo:=nil else
BEGIN
max:=p^.dato;
aux:=p;
While p<>nil do
BEGIN
p:=p^.sig;
if p^.dato>max then
BEGIN
max:=p^.dato;
aux:=p;
end;
end;
end;
pmaximo:=aux;
-----------------------------------------------
END;
compila pero la solucion no es correcta, hay algun pequeño error sospecho pero no lo localizo.
Un Saludo
Valora esta pregunta


0