Ir para conteúdo
Fórum Script Brasil
  • 0

Alguém me ajuda a finalizar por favor, não estou conseguindo ...dicas please..


Druu

Pergunta

#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

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...