Jump to content
Fórum Script Brasil

eduarda_dasilveira

Membros
  • Content Count

    1
  • Joined

  • Last visited

Community Reputation

0 Neutro

About eduarda_dasilveira

  1. Implementar em C uma árvore binária de pesquisa que armazena valores do tipo inteiro. O programa deve oferecer as seguintes opções para o usuário: 1) Inserir um elemento (informado pelo usuário); 2) Buscar um elemento (é fornecida uma chave e a função informa se encontrou ou não o elemento); 3) Imprimir o conteúdo da árvore (ao selecionar essa opção devem ser mostrados na tela os dados com o caminhamento pré-fixado a esquerda); 4) Imprimir o nível da árvore; 5) Liberar a árvore da memória e encerrar. Meu código é este, porém tenho dúvidas em como fazer o item 4 e 5. #include <stdio.h> #include <stdlib.h> #include <locale.h> #include "arvore.h" struct arvore { struct _arvore *esq; int valor; struct arvore *dir; }; typedef struct arvore a; a *raiz = NULL; void Inserir(int x){ a *novo = NULL; a *aux = NULL, *auxOld = NULL; novo = malloc (sizeof(a)); novo -> valor = x; novo -> esq = NULL; novo -> dir = NULL; if (raiz == NULL){ raiz = novo; } else { aux = raiz; while (aux != NULL){ auxOld = aux; if (x < aux -> valor){ aux = aux -> esq; } else { aux = aux -> dir; } if (x < auxOld -> valor){ auxOld -> esq = novo; } else { auxOld -> dir = novo; } } } } void Buscar(int x){ setlocale (LC_ALL, ""); a *aux = NULL; aux = raiz; while (aux != NULL) { if (x == aux -> valor) { printf("Elemento encontrado.\n"); return; } else if (x < aux -> valor){ aux = aux -> esq; } else { aux = aux -> dir; } if (aux == NULL){ printf("Elemento não encontrado.\n"); } } } void PrefixEsq(a *aux){ if (aux == NULL){ return; } printf("%d ", aux -> valor); PrefixEsq(aux -> esq); PrefixEsq(aux -> dir); } void PrefixDir(a *aux) { if (aux == NULL) return; printf("%d ", aux -> valor); PrefixDir(aux -> dir); PrefixDir(aux -> esq); } void ImprimirPreEsq(){ PrefixEsq(raiz); printf("\n"); }
×
×
  • Create New...