Está en la página 1de 3

Se tiene una lista de nombres, elabore un procedimiento que dado un nombre lo busque en la lista y si

lo encuentra, lo elimine, de lo contrario lo inserte de primero en la lista. al final se debe mostrar que
acción se hizo (borrar o insertar) y el contenido de toda la lista.

Publico ListaDoble EliminarInsertar(objl es ListaDoble, nom es cadena)


//clase listadoble o clase manejopilascolas
Si(EstaVacia()=false) entonces
Si(Buscar(nom)=verdadero) entonces
LiberarDato(nom)
Imprimir “se eliminó o liberó el dato”
Sino
InsertarCabeza(nom)
Imprimir “se Insertó como cabeza el dato”
Fin si
Sino
Imprimir “lista esta vacia”
Fin si
Retornar objl
Fin eliminar insertar

Método que retorne la suma de la lista. //clase listadoble

Publico real sumar ()


    laSuma = 0 es real
      Si (EstaVacia()=falso)entonces
q=obtenerCabeza()
Mientras(q<>null)
                            lasuma = lasuma+q.obtenerDato()
q=q.ObtenerSig()//adelantar en la lista
           fin mientras
sino
Imprimir “la lista esta vacia”
fin si
      Retornar lasuma
Fin de suma

Método que retorne el número de elementos de la lista.

publico entero NumeroElementos ( ) //clase listadoble


entero cont=0
si(EstaVacia()=falso) entonces
    q=obtenerCabeza()
    mientras(q<>null)
        cont=cont +1
        q=q.obtenerSig()//adelantar en la lista
    fin mientras
fin si
retornar cont
fin numero elementos
Método que retorne el promedio de la lista.(usando los métodos anteriores)

Publico real Promediar()


si(EstaVacia()=falso) entonces
Retornar (sumar()/NumeroElementos())
fin si
fin Promediar

Retornar el mayor número de la lista. Retornar el menor número de la lista.

Publico real MayorLista(ObjLista es ListaDoble)


Mayor es real
    Si(EstaVacia=Falso)
              Mayor = ObtenerCabeza().obtenerDato()
              q=obtenerCabeza()
           Mientras(q <>null)
                si(Mayor<q.obtenerDato())
Mayor=q.obtenerDato()
                 finsi
q=q.obtenerSig()//avanzar en la lista
            finMientras
si no
     Imprimir "lista vacia"
Fin si
Retornar Mayor
FinMayorLista

Buscar un dato en la lista, que se recibe como parámetro y remplazarlo por el dato que el usuario
quiera.

Publico listadoble BuscarActualizar(objl es listadoble, datobus es cadena)


datoAc es cadena
Si (EstaVacia()=falso) entonces
si (Buscar(datobus)=verdadero) entonces
Imprimir “por cual dato se actualiza:”
Leer datoAc
p.asignarDato(datoAc)
sino
imprimir (“no se encontró el dato”)
fin si
fin si
retorne objl
fin buscar actualizar
Organizar lista en forma Descendente (para ascendente solo es cambiar el signo)

publico ListaDoble OrganizarDescendente (objl es ListaDoble)


Si (EstaVacia()=falso) entonces
q=obtenerCabeza()
mientras(q.obtenerSig()<>null)
fin=q.obtenerSig()
mientras(fin<>null)
si(fin.obtenerDato()>q.obtenerDato()) entonces
aux= fin.obtenerDato()
fin.asignarDato(q.obtenerDato())
q.asignarDato(aux)
fin si
fin=fin.obtenerSig()//avanzar en la lista fin
fin mientras//fin mientras fin
q=q.obtenerSig()//avanzar en la lista q
fin mientras//fin mientras q
si no
     Imprimir "lista vacia"
Fin si
retornar objl
fin organizar

También podría gustarte