cout << "1 - Inserir na árvore binária" << endl;
cout << "2 - Exibir árvore em ordem" << endl;
cout << "3 - Exibir árvore em pre ordem" << endl;
cout << "4 - Exibir árvore em pos ordem" << endl;
cout << "5 - Procurar um valor na árvore" << endl;
cout << "6 - Remover um valor da árvore" << endl;
cout << "7 - Sair" << endl;
cout << "Opção: ";
cin >> op;
if (op == 1) {
cout << "Inserir na árvore binária ..." <<endl;
cout << "Digite o valor: " <<endl;
novo = new arvore();
cin >> novo -> x;
novo -> dir = NULL;
novo -> esq = NULL;
cout << "Valor "<< novo -> x <<" adicionado na arvore "<<endl;
if(raiz == NULL) {
raiz = novo;
} else {
flag = false;
aux = raiz;
while(flag == false) {
if(novo -> x >= aux -> x) {
if (aux -> dir == NULL) {
aux -> dir = novo;
flag = true;
} else {
aux = aux -> dir;
}
} else {
if (aux -> esq == NULL) {
aux -> esq = novo;
flag = true;
} else {
aux = aux -> esq;
}
}
}
}
} else if (op == 2) {
cout <<"Exibindo os valores na árvore em ordem..." <<endl;
aux = raiz;
topo = NULL;
do {
while(aux != NULL) {
aux_pilha = new pilha();
aux_pilha -> num = aux;
aux_pilha -> prox = topo;
topo = aux_pilha;
aux = aux -> esq;
}
if(topo != NULL) {
aux_pilha = topo;
cout << aux_pilha -> num -> x << " ";
aux = topo -> num -> dir;
topo = topo -> prox;
}
} while(topo != NULL or aux != NULL);
cout << endl;
} else if (op == 3) {
cout << "Exibindo os valores na arvore em pre ordem... " <<endl;
if (raiz == NULL ){
cout << "Arvore vazia " <<endl;
}else {
aux = raiz;
while(aux != NULL ) {
aux_pilha = new pilha();
aux_pilha -> num = aux ;
aux_pilha -> prox = topo;
topo = aux_pilha;
aux = aux -> esq;
cout << aux_pilha -> num -> x << " ";
topo = topo -> prox ;
}
}
cout <<endl;
} else if (op == 4) {
cout << "Exibindo os valores na arvore em pos ordem... " <<endl;
if(raiz ==NULL){
cout << "Arvore vazia "<<endl;
}else{
}
} else if (op == 5) {
cout << "Procurando valor na arvore... " <<endl;
cout<<"informe o valor que você deseja encontrar :"<<endl;
cin >> procurar;
aux = raiz;
if (raiz == NULL){
cout <<"Arvore vazia "<<endl;
}else{
while(aux != NULL) {
if (aux -> x == procurar){
cout << aux -> x <<endl;
cout << "Valor encontrado "<<endl;
} else {
cout << "Valor não está na árvore" <<endl;
}
aux = aux -> esq;
}
}
cout <<endl;
}else if (op == 6) {
cout << "Remover um valor da arvore... " <<endl;
aux = raiz;
Pergunta
Druu
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
struct arvore {
int x;
arvore *dir;
arvore *esq;
};
struct pilha {
arvore *num;
pilha *prox;
};
int main() {
arvore *raiz;
arvore *aux;
arvore *novo;
pilha *topo;
pilha *aux_pilha;
int op, procurar;
bool flag;
raiz = new arvore();
raiz = NULL;
do {
cout << "1 - Inserir na árvore binária" << endl;
cout << "2 - Exibir árvore em ordem" << endl;
cout << "3 - Exibir árvore em pre ordem" << endl;
cout << "4 - Exibir árvore em pos ordem" << endl;
cout << "5 - Procurar um valor na árvore" << endl;
cout << "6 - Remover um valor da árvore" << endl;
cout << "7 - Sair" << endl;
cout << "Opção: ";
cin >> op;
if (op == 1) {
cout << "Inserir na árvore binária ..." <<endl;
cout << "Digite o valor: " <<endl;
novo = new arvore();
cin >> novo -> x;
novo -> dir = NULL;
novo -> esq = NULL;
cout << "Valor "<< novo -> x <<" adicionado na arvore "<<endl;
if(raiz == NULL) {
raiz = novo;
} else {
flag = false;
aux = raiz;
while(flag == false) {
if(novo -> x >= aux -> x) {
if (aux -> dir == NULL) {
aux -> dir = novo;
flag = true;
} else {
aux = aux -> dir;
}
} else {
if (aux -> esq == NULL) {
aux -> esq = novo;
flag = true;
} else {
aux = aux -> esq;
}
}
}
}
} else if (op == 2) {
cout <<"Exibindo os valores na árvore em ordem..." <<endl;
aux = raiz;
topo = NULL;
do {
while(aux != NULL) {
aux_pilha = new pilha();
aux_pilha -> num = aux;
aux_pilha -> prox = topo;
topo = aux_pilha;
aux = aux -> esq;
}
if(topo != NULL) {
aux_pilha = topo;
cout << aux_pilha -> num -> x << " ";
aux = topo -> num -> dir;
topo = topo -> prox;
}
} while(topo != NULL or aux != NULL);
cout << endl;
} else if (op == 3) {
cout << "Exibindo os valores na arvore em pre ordem... " <<endl;
if (raiz == NULL ){
cout << "Arvore vazia " <<endl;
}else {
aux = raiz;
while(aux != NULL ) {
aux_pilha = new pilha();
aux_pilha -> num = aux ;
aux_pilha -> prox = topo;
topo = aux_pilha;
aux = aux -> esq;
cout << aux_pilha -> num -> x << " ";
topo = topo -> prox ;
}
}
cout <<endl;
} else if (op == 4) {
cout << "Exibindo os valores na arvore em pos ordem... " <<endl;
if(raiz ==NULL){
cout << "Arvore vazia "<<endl;
}else{
}
} else if (op == 5) {
cout << "Procurando valor na arvore... " <<endl;
cout<<"informe o valor que você deseja encontrar :"<<endl;
cin >> procurar;
aux = raiz;
if (raiz == NULL){
cout <<"Arvore vazia "<<endl;
}else{
while(aux != NULL) {
if (aux -> x == procurar){
cout << aux -> x <<endl;
cout << "Valor encontrado "<<endl;
} else {
cout << "Valor não está na árvore" <<endl;
}
aux = aux -> esq;
}
}
cout <<endl;
}else if (op == 6) {
cout << "Remover um valor da arvore... " <<endl;
aux = raiz;
if (aux == NULL){
cout <<"Arvore vazia "<<endl;
}else {
}
}else if (op == 7){
cout << "Até mais!" << endl;
} else {
cout << "Opção Inválida!" << endl;
}
} while(op != 7);
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.