Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/11/2015, 16:26
PazMundial
 
Fecha de Ingreso: julio-2010
Mensajes: 31
Antigüedad: 14 años, 5 meses
Puntos: 0
Mensaje Problema al enteder un codigo de una lista recursiva

Buenas, tengo un códigos de una lita recursiva que se le puede ingresar n valores.

El problema es que no entiendo muy bien como funcionaria en forma recursiva.

Código:
#include <stdio.h>
#include <stdlib.h>

typedef struct lista_enlazada{
       int valor;
       struct lista_enlazada *sgte;
}LISTA;

LISTA* insertar(LISTA* head,int valor);
int main(){
    LISTA* head=NULL;
    int i,valor,n;
    printf("Ingrese la cantidad de valores a ingresar\n");
    scanf("%d",&n);
    for(i=1;i<=n;i++){
                      printf("Ingrese valor %d\n",i);
                      scanf("%d",&valor);
                      head=insertar(head,valor);  /*Aqui le asignamos a head lo que devuelte la funcion, que es un tipo de dato lista.*/
    }
    return 0;
}

/*Aqui es donde no se muy bien como hacerle el seguimiento a la función, es decir el camino que toma cuando ingreso mas de 1 numero*/
LISTA* insertar(LISTA* head,int valor){
       if(head==NULL){
                      head=(LISTA*)malloc(sizeof(LISTA));
                      head->valor=valor;
                      head->sgte=NULL;
       }
       else{
            head->sgte=insertar(head->sgte,valor);
            return head;
       }
}
Si alguien me puediese ayudar explicando un poco el codigo cuando se ingresa mas de un numero, unos 3 , le agradeceria mucho.