Criar uma Estrutura de Arvore Binaria e Uma Função de Busca em Largura para Árvores Binárias
Por: Derrick Cantrel • 17/3/2020 • Trabalho acadêmico • 1.026 Palavras (5 Páginas) • 185 Visualizações
Utilizando sua linguagem de programação de preferência, desenvolva:
i) A estrutura referente a um nó de uma árvore binária contendo três variáveis: o valor do nó, a referência para o filho esquerdo e a referência para o filho direito.
ii) Uma função "Criar nó" que receba um valor inteiro e instancie (crie) e retorne um nó com esse valor.
iii) Um a função de busca em largura para árvores binárias do tipo desenvolvido em (i).
iv) No seu programa, crie uma árvore com mais de 8 nós e aplique a busca em largura desenvolvida no item (iii).
LINGUAGEM C++
#include
#include
#include
using namespace std;
class ArvoreB {
protected:
struct no {
no *esquerda;
no *direita;
int v;
no() {}
no(
int v,
no *l = NULL,
no *r = NULL)
: esquerda(l), direita(r), v(v) {}
};
no* raiz_;
size_t numElementos_;
public:
ArvoreB(): raiz_(NULL), numElementos_(0) {}
void inserir(int v) {
no *novoNo = new no(v);
no *pai = NULL;
if(!raiz_) {
raiz_ = novoNo;
++numElementos_;
return;
}
no* actual = raiz_;
while(actual) {
pai = actual;
actual = novoNo->v > actual->v ? actual->direita : actual->esquerda;
}
if(novoNo->v < pai->v) {
pai->esquerda = novoNo;
}
else {
pai->direita = novoNo;
}
++numElementos_;
}
void inserir(std::vector
for(std::vector
inserir(*it);
}
}
void buscaLargura() {
std::queue
q.push(raiz_);
while (q.size() > 0)
{
no* n = q.front();
q.pop();
std::cout << n->v << " ";
if (n->esquerda !=NULL) {
q.push(n->esquerda);
}
if (n->direita !=NULL) {
q.push(n->direita);
}
}
std::cout << std::endl;
}
void mostraArvore() {
std::queue
...