Arvore Binaria linguagem C++
Por: Brendon Peixoto • 26/5/2017 • Projeto de pesquisa • 3.469 Palavras (14 Páginas) • 365 Visualizações
// main.cpp-----------------------------------------------------
#include <iostream>
#include "Arvore.h"
using namespace std;
int menu();
int main() {
int op, numero;
Arvore *raiz=0, *novo=0;
op=menu();
while(op!=0){
switch(op){
case 1:
cout<<"Digite o numero: ";
cin>>numero;
novo=new Arvore();
novo->setNumero(numero);
if(raiz==0){
raiz = novo;
}
else{
raiz->insert(novo);
}
break;
case 2:
if(raiz == 0){
cout<<"arvore nao existe"<<endl;
}
else
{
cout<<raiz->listaOrdenada()<<endl;
}
break;
case 3:
cout<<raiz->listaPreOrdenada()<<endl;
break;
case 4:
cout<<raiz->listaPosOrdenada()<<endl;
break;
case 5:
Arvore* aux2;
aux2 = raiz->minimo();
cout<<"minimo: "<<aux2->getNumero()<<endl;
aux2 = raiz->maximo();
cout<<"maximo: "<<aux2->getNumero()<<endl;
break;
case 6:
cout<<"informe o numero: ";
cin>>numero;
cout<<"Pesquisa: "<<raiz->pesquisar(raiz , numero)<<endl;
break;
case 7:
cout<<"informe o numero: ";
cin>>numero;
cout<<"Pesquisa interativa: "<<raiz->pesquisaInterativa(raiz , numero)<<endl;
break;
case 8:
cout<<"informe o numero: ";
cin>>numero;
Arvore* aux1;
aux1 = raiz->sucessor(numero);
cout<<"sucessor: "<<aux1->getNumero()<<endl;
break;
case 9:
cout<<"numero a ser apagado:";
cin>>numero;
raiz = raiz->excluir(raiz,numero);
/*cout<<"informe o numero: ";
cin>>numero;
if(raiz->getNumero() == numero){
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
...