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.