Search the Community

Showing results for tags 'arvore binaria'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 3 results

  1. Olá construí este código em arvore binaria mas, está dando erro , apenas preciso fazê-lo apresentar um resultado, que é o numeral 20. alguém poderia me ajudar. #include <stdio.h> typedef struct arv Arv; struct arv { char op; float valor; struct arv *esq, *dir; }; // Implementar esta função float avalia (Arv *a) { if ((a->esq == NULL) && (a->dir == NULL)) return a->valor; else{ if(a->op == ‘+’) return avalia(a->esq) + avalia(a->dir) if(a->op == ‘-’) return avalia(a->esq) - avalia(a->dir) if(a->op == ‘*’) return avalia(a->esq) * avalia(a->dir) if(a->op == ‘/’) return avalia(a->esq) / avalia(a->dir) } } int main(void) { // Árvore para representar a operação: 5 * 3= 15 Arv no[3]; // Em vetor Arv op, val1, val2; // Em variáveis // Vetor no[0].op = '*'; no[0].esq = &no[1]; no[0].dir = &no[2]; no[1].valor = 5; no[2].valor = 3; printf("Resultado da expressao: %.2f\n", avalia(&no[0])); // Variáveis op.op = '*'; op.esq = &val1; op.dir = &val2; val1.valor = 5; val2.valor = 3; printf("Resultado da expressao: %.2f\n", avalia(&op)); }
  2. Preciso fazer uma função que exclui os nós de uma árvore que são pares, tentei de várias formas porém o código está dando erro, gostaria de uma ajuda, se possível. Código da função remover que irei puxar dentro da função que estou fazendo (este está funcionando normalmente): int remove_ArvBin(ArvBin *raiz, int valor){ if(raiz == NULL) return 0; struct NO* ant = NULL; struct NO* atual = *raiz; while(atual != NULL){ if(valor == atual->info){ if(atual == *raiz) *raiz = remove_atual(atual); else{ if(ant->dir == atual) ant->dir = remove_atual(atual); else ant->esq = remove_atual(atual); } return 1; } ant = atual; if(valor > atual->info) atual = atual->dir; else atual = atual->esq; } return 0; } Função para remover os Pares: int excluiPar(ArvBin *raiz){ int info_atual, info_esquerda, info_direita; info_atual = (*raiz)->info; printf("%d\n", info_atual); if ((info_atual%2) == 0 ){ remove_ArvBin(raiz, info_atual); } if ((*raiz)->esq != NULL) { info_esquerda = ((*raiz)->info); if ((info_esquerda%2) == 0 ){ remove_ArvBin(raiz, info_esquerda); } } if ((*raiz)->dir != NULL) { info_direita = ((*raiz)->info); if ((info_direita%2) == 0 ){ remove_ArvBin(raiz, info_direita); } } } Quando rodo desta forma o sistema trava, tentei de outras formas também porém, não obtive sucesso. Tenho imensa dificuldade em estrutura de dados.
  3. #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <ctype.h> typedef struct No { int numero; struct No *pEsquerda; struct No *pDireita; } No; void criarArvore(No **pRaiz) { *pRaiz = NULL; } void inserir(No **pRaiz, int numero) { if(*pRaiz == NULL) { *pRaiz = (No *) malloc(sizeof(No)); (*pRaiz)->pEsquerda = NULL; (*pRaiz)->pDireita = NULL; (*pRaiz)->numero = numero; } else { if(numero < (*pRaiz)->numero) inserir(&(*pRaiz)->pEsquerda, numero); if(numero > (*pRaiz)->numero) inserir(&(*pRaiz)->pDireita, numero); } } int menu(){ int opcao; printf("\n\nO que deseja fazer? \n\n"); printf("0 - Sair\n"); printf("1 - Inserir Elementos\n"); scanf("%d", &opcao); return opcao; } int main(void){ int opcao; criarArvore(); do { opcao = menu(); switch (opcao) { case 0: break; case 1: inserir(); break; default: printf("\nOPCAO INVALIDA!"); } } while (opcao != 0); return 0; } Iniciei a implementação de inserção de elemento em árvore binária e, apresentou o seguinte erro: Linha Col. In function 'main': 49 2 [Error] too few arguments to function 'criarArvore' 13 6 [Note] declared here 56 2 [Error] too few arguments to function 'inserir' 18 6 [Note] declared here O que devo fazer?