Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

EDUPT20 - Nós Folhas de ABB

Crie um programa em C que manipula uma ABB (Árvore Binária de Busca) de acordo com a entrada de comandos e valores, executando esses comandos.

Entrada
    A entrada pode ser um COMANDO sozinho, ou então um COMANDO seguido de um VALOR.
    Os comandos são: 1 -> inserir na ABB, 2 -> mostrar o número de nós FOLHA da ABB e terminar o programa. O comando inserir tem logo a seguir qual o valor a ser inserido.

Saída
    A saída vai ser o número de nós folha da ABB (que também termina o programa).


Entrada Saída
1 40
1 20
1 60
1 10
1 30
1 50
1 70
2
4
1 40
1 20
1 60
1 10
1 30
1 50
1 70
1 5
1 15
1 55
2
5

 

#include <stdio.h>

#include <stdlib.h>

 

struct no

{

    int chave;

    struct no *esq;

    struct no *dir;

};

typedef struct no No;

 

No* cria_no(int chave)

{

    No *novo = malloc(sizeof(No));

    novo->chave = chave;

    novo->esq = novo->dir = NULL;

    return novo;

}

 

No* insere_no(No *raiz, int chave)

{

    No *novo = cria_no(chave);

    No *p, *q;

    if (raiz == NULL)

    {

        raiz = novo;

    }

    else

    {

        p = NULL;

        q = raiz;

        while (q != NULL)

        {

            p = q;

            if (chave < q->chave)

                q = q->esq;

            else

                q = q->dir;

        }

        if(chave < p->chave)

        {

            p->esq = novo;

        }

        else

        {

            p->dir = novo;

        }

    }

    return raiz;

}

 

 

void em_ordem(No* raiz)

{

 

    if(raiz != NULL)

    {

 

        em_ordem(raiz->esq);

        printf("%d ", raiz->chave);

        em_ordem(raiz->dir);

    }

}

 


Added by:IFTM_Maratona
Date:2022-12-21
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:C

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.