/*Declaracion de estructuras y funciones*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <malloc.h>
#define SI 1
#define NO 0
struct lista
{
char nombre[15];
char ape1[20];
char ape2[20];
int edad;
struct lista *sig;
};
struct lista *nuevo;
void cogerDatosTexto(struct lista **cabeza);
void introducirDatos(struct lista *dat);
struct lista* nuevoElemento();
int presentaMenu(void);
void crearLista(struct lista **cabeza);
int listaVacia(struct lista *cabeza);
void insertarPrincipio(struct lista **cabeza);
void visualizarNodo(struct lista *cabeza);
void mostrarLista(struct lista *cabeza);
void insertarFinal(struct lista **cabeza);
void insertarPorApellido1(struct lista **cabeza,char *ape1);
void visualizarPorApellido1(struct lista *cabeza,char *ape1);
struct lista* buscarPersona(struct lista *cabeza, char *ape1);
void visualizarCabezaCola(struct lista *cabeza);
void visualizarColaCabeza(struct lista *cabeza);
void liberarMemoria(struct lista **cabeza);
void liberarMemoriaRecursivo(struct lista **cabeza);
void grabarLista(struct lista *cabeza, char *fichero);
void borrarPorApellido1(struct lista **cabeza, char *ape1);
void liberarRecursivo(struct lista **cabeza);
void liberar(struct lista **cabeza);
int listaOrdenadaApellido(struct lista *cabeza);