bueno gracias por la ayuda el programa es este pero no me copila soy nuevo en esto y no entiendo muy bien programación espero que me ayude
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define T_NOM 101
#define T_EDAD 3
struct persona {
char nom[100];
char edad[3];
struct persona *siguiente;
};
#define LEE_CAD(c,n) { int i=0; \
c[i]=getchar();\
while((c[i]=='\n') || (c[i]=='\t')) c[i]=getchar();\
while ((c[i]!='\n') && (i < (n-1))){ \
i++;\
c[i]=getchar(); }\
c[i]='\0'; }
#include "estructura_de_datos.h"
int main(){
struct persona *lista=NULL;
struct persona *nodo;
int op;
void alta_inicio();
void alta_final();
void recorrer_lista();
do{
do{
printf("Elija una opción:\n");
printf("1--> Añadir al principio.\n");
printf("2--> Añadir al final.\n");
printf("3--> Recorrer la lista.\n");
printf("4--> Salir.\n");
scanf("%d",&op);
}while((op < 1) || (op > 4));
if(op != 4)
switch(op){
case 1: { alta_inicio(&lista);break;}
case 2: { alta_final(&lista);break;}
case 3: { recorrer_lista(&lista);break;}
}
}while(op != 4);
exit(0);
}
void alta_inicio(struct persona **lista){
struct persona *nuevo_nodo;
nuevo_nodo=(struct persona *)malloc(sizeof(struct persona));
if(nuevo_nodo != NULL){
nuevo_nodo->siguiente = *lista;
*lista = nuevo_nodo;
printf("Nombre: ");
LEE_CAD(nuevo_nodo->nom,100);
printf("Edad: ");
LEE_CAD(nuevo_nodo->edad,3);
}
}
void alta_final(struct persona **lista){
struct persona *nuevo_nodo;
struct persona *nodo_aux;
nuevo_nodo=(struct persona *)malloc(sizeof(struct persona));
if(nuevo_nodo != NULL){
nodo_aux = *lista;
while(nodo_aux->siguiente != NULL)
nodo_aux = nodo_aux->siguiente;
nodo_aux->siguiente=nuevo_nodo;
nuevo_nodo->siguiente=NULL;
LEE_CAD(nuevo_nodo->nom,100);
LEE_CAD(nuevo_nodo->edad,3);
}
else
printf("Error al tomar memoria del nuevo nodo.\n");
}
void recorrer_lista(struct persona **lista){
struct persona *nodo_aux;
nodo_aux = *lista;
while(nodo_aux != NULL){
printf("%s\n",nodo_aux->nom);
printf("%s\n",nodo_aux->edad);
nodo_aux = nodo_aux->siguiente;
}
}