TADS:Estrutura de Dados: codigos0602
De Wiki Cursos IFPR Foz
#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);
}