Implemente uma classe Dicionario de elementos chave-valor formados por textos (strings), em C++, respeitando o seguinte:
#ifndef T1_DICIONARIO_ABB_H #define T1_DICIONARIO_ABB_H #include <string> class DicionarioAbb { public: //Cria um dicionario vazio DicionarioAbb(); //Cria um dicionario com um primeiro elemento DicionarioAbb(const std::string &chave, const std::string &valor); //Cria um dicionario a partir de outro DicionarioAbb(const DicionarioAbb& orig); //Destroi o dicionario virtual ~DicionarioAbb(); //Insere um elemento no dicionario void insere(const std::string &chave, const std::string &valor); //Obtém o valor de um elemento, dada a sua chave std::string obtemValor(const std::string &chave); //Remove um elemento no dicionario, dada a sua chave bool remove(const std::string &chave); //Retorna o numero de elementos do conjunto unsigned int tamanho(); //Exibe os elementos do dicionario na ordem lexografica das suas chaves void mostra(); //Exibe a arvore que armazena o dicionario no formato //( raiz (sub-arvore a esquerda) (sub arvore a direita) ) void mostraAbb(); //Retorna a altura da arvore que armazena o dicionario int altura(); private: struct AbbNo { std::string _chave; std::string _valor; AbbNo* _pai; // no pai AbbNo* _esq; // sub-arvore a esquerda AbbNo* _dir; // sub-arvore da direita }; AbbNo* _raiz; /* Funcoes e membros privados que julgar necessarios */ }; #endif // T1_DICIONARIO_ABB_H