Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Sudistano

Ajuda simples para imprimir uma árvore binária

Recommended Posts

Sudistano    0

Buenas senhores,

 

Seguinte, estou fazendo um código para árvore binária, a estrutura dele está pronta só estou com dificuldades para conseguir imprimir.

Preciso saber a função que imprime os conteúdos de uma árvore binária com recuos de margem proporcionais à profundidade do nó na árvore.

 

Por exemplo, a árvore:

0NqRM9z.png

 

Obs.: os '--' são os valores nulos.

 

Segue o código que fiz:

 

void ImprimirPreOrder (No *p)

{

if (p)

{

cout << p->info; ImprimirPreOrder(p->esq);

ImprimirPreOrder(p->dir);

}

}

 

typedef struct no {

int info;

struct no *dir, *esq;

};

 

No *criaNo (int x)

{

No *p = new No;

p->esq = NULL;

p->dir = NULL;

p->info = x;

return p;

}

 

void InsereEsquerda(No *p, int x)

{

No *q = criaNo(x);

p->esq = q;

}

void InsereDireita(No *p, int x)

{

No *q = criaNo(x);

p->dir = q;

 

}

 

void main()

{

No *raiz, *p, *q;

string linha;

int num;

int continua = 1;

int primeiro = 1;

 

while(continua)

{

cout << "Entre com um valor, s para finalizar " << endl;

cin >> linha; if (linha == "s")

{

continua = 0; continue;

}

stringstream sstemp(linha); sstemp >> num;

if (primeiro)

{

raiz = criaNo(num);

primeiro = 0;

}

else

{

q = raiz;

p = raiz;

while (num != p->info && q != NULL) {

p = q;

if (num < p->info)

q = p->esq; else

q = p->dir;

}

if (num == p->info)

cout << "O numero " << num << " ja existe na arvore" << endl;

else { if (num < p->info) InsereEsquerda(p, num);

else

InsereDireita(p, num);

}

}

}

getchar();

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×