/*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);