Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2015, 13:03
Avatar de Swastik
Swastik
 
Fecha de Ingreso: noviembre-2013
Mensajes: 9
Antigüedad: 11 años
Puntos: 1
Ejercicio Recursividad con Lista

Buenas tengo unos inconvenientes a la hora de realizar este ejercicio

Escriba una función recursiva que reciba un apuntador al primer nodo de una lista simple de números enteros y verifique si esta se encuentra ordenada en forma descendente.

lo que tengo hecho es lo siguiente...

Código C:
Ver original
  1. int descendente(NODO *frente)
  2. {
  3.      printf("\nELEM [%d] - -ELEM SIG [%d]",frente->elem,frente->sig->elem);
  4.      
  5.      
  6.      if(frente==NULL)
  7.      {
  8.        return 0;
  9.      }
  10.      else
  11.      {
  12.        if(frente->elem >= frente->sig->elem)
  13.        {
  14.          frente=frente->sig;
  15.          return 1;
  16.        }
  17.        else
  18.        {
  19.         frente=frente->sig;
  20.         return 0;
  21.        }          
  22.      }
  23.      
  24.      descendente(frente);
  25. }

retorno 1 para decir que esta ordenado descendentemente y 0 para lo contrario

El problema que veo es que solo me compara los 2 primeros elementos, por ejemplo si coloco 10 - 6 los compara y retorna 1 como debe ser, ahora si coloco 10 - 6 - 8 me retorna 1 y debería retornar 0;

creo que el problema esta en los retornos? ya que si se los quito me recorre la lista sin problemas...

gracias, saludos.