Ir ao conteúdo

C++


Visitante

Posts recomendados

Postado

???

Oi pessoal preciso de alguém que saiba muito de C++ para me ajudar na proposição abaixo

Tchau !!!

9 - Escreva um algoritmo que encontre o menor e o maior valor armazenados em uma árvore binária de pesquisa já construída.

Postado

Podem me chamar de chato, mas isso tá parecendo mais um desses posts de alguém que faltou à aula e tá querendo que alguém do fórum faça o trabalho por ele...   :Z

Postado

:P  O q é uma árvore binária?! Faltei nessa aula hahahahaha

Postado
Postado Originalmente por Erica@25 Out. 2002,16:38

???

Oi pessoal preciso de alguém que saiba muito de C++ para me ajudar na proposição abaixo

Tchau !!!

9 - Escreva um algoritmo que encontre o menor e o maior valor armazenados em uma árvore binária de pesquisa já construída.

e lá vamos nos de novo,

desta vez vai o codigo completo...

(pelo visto os professores andam meio sem imaginação)

----------------------------------

#include <stdlib.h>

#include <stdio.h>

#include<conio.h>

struct arvore {

char letra;

struct arvore *esquerdo;

struct arvore *direito;

};

struct arvore *nodo;

struct arvore *adiciona(struct arvore *nodo, struct arvore *novo, char letra);

void imprime (struct arvore *nodo, int linha);

int altura (struct arvore *nodo);

char LetraMenor(struct arvore *nodo);

char LetraMaior(struct arvore *nodo);

struct arvore *pesquisa(struct arvore *nodo, char letra);

void main()

{

clrscr();

char letra[80], procura, menor, maior;

nodo=NULL;

do {

printf("\n Entre uma letra : ");

gets(letra);

if(!*letra)

break;

if(!nodo)

nodo = adiciona(nodo, nodo, *letra);

else

adiciona(nodo, nodo, *letra);

}while(*letra);

imprime(nodo, NULL);

printf("\n A altura é: %d",altura(nodo));

printf("\n O maior elemento é: %c",maior=LetraMaior(nodo));

printf("\n O menor elemento é: %c",menor=LetraMenor(nodo));

printf("\n Digite uma letra a ser encontrada : ");

scanf("%c",&procura);

if(pesquisa(nodo,procura))

printf("\n O elemento foi encontrado!!!");

else

printf("\n O elemento não foi encontrado!!!");

getch();

}

struct arvore *pesquisa(struct arvore *nodo, char letra)

{

if (nodo == NULL || nodo->letra == letra)

  return (nodo);

if (nodo->letra > letra)

  return (pesquisa (nodo->esquerdo, letra));

else

  return (pesquisa (nodo->direito, letra));

}

char LetraMaior(struct arvore *nodo)

{

if(!nodo->direito)

return(nodo->letra);

LetraMaior(nodo->direito);

}

char LetraMenor(struct arvore *nodo)

{

if(!nodo->esquerdo)

return(nodo->letra);

LetraMenor(nodo->esquerdo);

}

struct arvore *adiciona(struct arvore *nodo, struct arvore *novo, char letra)

{

if(!novo){

novo = (struct arvore *) malloc(sizeof(struct arvore));

if(!novo) {

clrscr();

printf("\n k-bo a memoria, você precisa comprar mais se quiser adicionar esse nodo\n");

getch();

exit(0);

}

novo->esquerdo = NULL;

novo->direito = NULL;

novo->letra = letra;

if(!nodo)

return novo;

if(letra<nodo->letra)

nodo->esquerdo = novo;

else

nodo->direito = novo;

return novo;

}

if(letra<novo->letra)

adiciona(novo, novo->esquerdo, letra);

else

adiciona(novo, novo->direito, letra);

}

void imprime (struct arvore *nodo, int linha)

{

if(!nodo) return;

imprime(nodo->esquerdo, linha+1);

for(int i=0; i<linha; ++i)

printf(" ");

printf("%c\n", nodo->letra);

imprime(nodo->direito, linha+1);

}

int altura (struct arvore *nodo)

{

if (nodo == NULL)

return (-1);

else{

int he = altura (nodo->esquerdo);

int hd = altura (nodo->direito);

if (he < hd)

return (hd + 1);

else

return (he + 1);

      }

}

  • 5 anos depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!