TADS:Estrutura de Dados: codigos0602

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar


#include<stdio.h>
#include<stdlib.h>

typedef struct No{
    int dado;
    struct No *esquerdo;
    struct No *direito;
} No;

void main()
{
    No raiz;
    raiz.dado = 20;
    raiz.esquerdo = NULL;
    raiz.direito  = NULL;

    No *novo = malloc(sizeof(No));
    novo->dado = 10;
    novo->esquerdo = NULL;
    novo->direito  = NULL;


    No *novoesquerdo = malloc(sizeof(No));
    novoesquerdo->dado = 5;
    novoesquerdo->esquerdo = NULL;
    novoesquerdo->direito = NULL;
    novo->esquerdo = novoesquerdo;


    No *novodireito = malloc(sizeof(No));
    novodireito->dado = 15;
    novodireito->esquerdo = NULL;
    novodireito->direito = NULL;
    novo->direito = novodireito;

    raiz.esquerdo = novo;


    novo = malloc(sizeof(No));
    novo->dado = 30;
    novo->esquerdo = NULL;
    novo->direito  = NULL;

    novoesquerdo = malloc(sizeof(No));
    novoesquerdo->dado = 25;
    novoesquerdo->esquerdo = NULL;
    novoesquerdo->direito = NULL;
    novo->esquerdo = novoesquerdo;


    novodireito = malloc(sizeof(No));
    novodireito->dado = 35;
    novodireito->esquerdo = NULL;
    novodireito->direito = NULL;
    novo->direito = novodireito;


    raiz.direito = novo;

    printf("Raiz    :  %d\n" , raiz.dado);
    printf("Esquerda:  %d\n" , raiz.esquerdo->dado);
    printf("Esquerda - e:  %d\n" , raiz.esquerdo->esquerdo->dado);
    printf("Esquerda - d:  %d\n" , raiz.esquerdo->direito->dado);
    printf("Direita :  %d\n" , raiz.direito->dado);
    printf("Direita : - e:  %d\n" , raiz.direito->esquerdo->dado);
    printf("Direita : - d:  %d\n" , raiz.direito->direito->dado);


}