Ir ao conteúdo
  • Cadastre-se

Sudistano

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

posts postados por Sudistano

  1. 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();

    }

     

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!