Estoy ahora estudiando listas enlazadas y estoy teniendo una ardua lucha con una.
Compilado con Eclipse.
El programa lo que hace es cargar una lista enlazada de 5 elementos y busca el elemento que le pidas.
Problemas:
Introduzco los datos: 1,2,3,4 y 5.
Si busco cualquiera esos números dice que existe el elemento en la lista. Eso esta bien.
Pero por ejemplo si busco el 6, no me dice absolutamente nada, cuando debería decirme algo.
Código:
if(pA->data==num) printf("El elemento se encuentra en la lista"); else printf("El elemento no se encuentra en la lista");
Código:
Saludos y gracias anticipadas por cualquier ayuda que puedan prestarme :D #include <stdio.h> #include <stdlib.h> #define NUMREG 5 struct FINT{ int data; struct FINT *next; }; void buscar (struct FINT *pA,int num) { while(pA!=NULL && pA->data!=num) { pA=pA->next; } if(pA->data==num) printf("El elemento se encuentra en la lista"); else printf("El elemento no se encuentra en la lista"); // Esto no lo imprime nunca } int main() { setbuf(stdout,NULL); struct FINT *pA,*nuevo; pA=NULL; nuevo=NULL; int x; for(x=0;x<NUMREG;x++) { nuevo=(struct FINT*)malloc(sizeof(struct FINT)); printf("Introduzca un dato:"); scanf("%d",&nuevo->data); nuevo->next=pA; pA=nuevo; } int num; puts("Introduzca el numero que desea buscar en la lista"); scanf("%d",&num); buscar(pA,num); return 0; }