Arvore Binaria linguagem C++
Por: kamys17 • 21/9/2018 • 3.479 Palavras (14 Páginas) • 286 Visualizações
...
cout<<"pai de "<<numero<<": null"<<endl;
break;
}
Arvore* aux;
stringstream ss;
aux = raiz->pai(raiz , numero);
ss<<aux->getNumero();
cout<<"pai de "<<numero<<": "<<ss.str()<<endl;*/
break;
}
op=menu();
}
return 0;
}
int menu(){
cout << "\n\n|==========Arvore=========|" << endl;
cout << "| |" << endl;
cout << "| 1 - Inserir |" << endl;
cout << "| 2 - Listar em ordem |" << endl;
cout << "| 3 - Listar em pre-ordem |" << endl;
cout << "| 4 - Listar em pos-ordem |" << endl;
cout << "| 5 - Minimo e maximo |" << endl;
cout << "| 6 - Pesquisar |" << endl;
cout << "| 7 - Pesquisa interativa |" << endl;
cout << "| 8 - sucessor |" << endl;
cout << "| 9 - excluir |" << endl;
cout << "| 0 - Sair |"<<endl;
cout << "|=========================|"<<endl;
cout << "Digite a opcao: ";
int op;
cin>>op;
return op;
}
//Arvore.h-----------------------------------------------------------------------
#ifndef ARVORE_H_
#define ARVORE_H_
#include<string>
#include <sstream>
class Arvore {
public:
//static Arvore *raiz;
Arvore();
virtual ~Arvore();
int getNumero() const;
void setNumero(int numero);
void setDireita(Arvore* direita);
Arvore* getDireita() const;
void setEsquerda(Arvore* esquerda);
Arvore* getEsquerda() const;
void insert(Arvore* elemento);
std::string listaOrdenada();
std::string listaPreOrdenada();
std::string listaPosOrdenada();
Arvore *minimo();
Arvore *maximo();
std::string pesquisar(Arvore *x,int n);
std::string pesquisaInterativa(Arvore *x,int n);
Arvore *sucessor(int n);
Arvore *pai(Arvore *x, int n);
Arvore *excluir(Arvore *t, int n);
private:
int numero;
Arvore* direita;
Arvore* esquerda;
};
#endif /* ARVORE_H_ */
//Arvore.cpp-----------------------------------------------------------------------
#include "Arvore.h"
#include <iostream>
Arvore::Arvore() {
// TODO Auto-generated constructor stub
this->direita=0;
this->esquerda=0;
this->numero=0;
}
Arvore::~Arvore() {
// TODO Auto-generated destructor stub
}
int Arvore::getNumero() const {
return numero;
}
void Arvore::setNumero(int numero) {
this->numero = numero;
}
void Arvore::setDireita(Arvore* direita){
this->direita=direita;
}
Arvore* Arvore::getDireita() const{
return this->direita;
}
void Arvore::setEsquerda(Arvore* esquerda){
this->esquerda=esquerda;
}
Arvore* Arvore::getEsquerda() const{
return this->esquerda;
}
void Arvore::insert(Arvore* elemento){
...