Version:0.9 StartHTML:0000000105 EndHTML:0000001844 StartFragment:0000000152 EndFragment:0000001810
/******************************************************/
/*************** Isidro Pastor Jorda ******************/
/******************************************************/
/****************** Telematica ************************/
/******************** FPII ****************************/
/****************** Practica 7 ************************/
/******************************************************/

#include <stdlib.h>
#include <string>



typedef string Valor;

class ABB
{
    public:
        ABB (); //Constructor
        ABB (ABB &ori); //Constructor de copia
        ~ABB(); //Destructor
        bool ArbolVacio();
        bool Informacion (Valor & dato, int &ocurrencias);
        ABB &HijoIzdo();
        ABB &HijoDcho();
        bool Insertar(Valor x);
        bool Eliminar(Valor x);
        ABB &Buscar(Valor x);
        void CopiarABB (ABB &ori);

    private:
        typedef ABB *PunteroABB;
        void Borrar0(PunteroABB aux);
        void Borrar1(PunteroABB aux, PunteroABB hijo);
        void Borrar2(PunteroABB aux);
        bool esvacio;
        Valor dato;
        int ocur;
        PunteroABB izdo;
        PunteroABB dcho;
};