SlideShare uma empresa Scribd logo
#include <stdio.h>
#include <stdlib.h>
//#include <conio.h>

struct arvore
{
 struct arvore *esq;
 char dado;
 struct arvore *dir;
} *raiz;

struct arvore* cria_no(struct arvore *atual,char dado,char lado)
{
     struct arvore *no;
          no = (struct arvore*) malloc(sizeof(struct arvore));
          (*no).esq = NULL;
     (*no).dado = dado;
          (*no).dir = NULL;
          if (!raiz)
               raiz = no;
          else
             if (lado == 'e')
                    (*atual).esq = no;
             else
                   (*atual).dir = no;
     return(no);
}

void insere_arv(struct arvore *no_filho,char lado,char dado)
{
char carac;
struct arvore *sub_arv;
if(lado == 'r')
   printf("nRAIZ = ");
else
   if(lado == 'e')
      printf("nESQ DE %c = ",dado);
   else
      printf("nDIR DE %c = ",dado);
   carac = getche();
if(carac != 13)//se digitar <enter> passa p/ o próximo
{
 sub_arv = cria_no(no_filho,carac,lado);
 insere_arv(sub_arv,'e',carac);
 insere_arv(sub_arv,'d',carac);
}
}
void mostra(struct arvore *pont_arv)
{
char esquerda, direita;
struct arvore *no_atual;
if(pont_arv)
{
 no_atual = (*pont_arv).esq;
 if(no_atual)
    esquerda = (*no_atual).dado;
 else
    esquerda = ' ';
 no_atual = (*pont_arv).dir;
 if(no_atual)
    direita = (*no_atual).dado;
 else
    direita = ' ';
 printf("n [ %c ] <--- [ %c ] ---> [ %c ]",esquerda,(*pont_arv).dado,direita);
 mostra((*pont_arv).esq);
 mostra((*pont_arv).dir);
}
}

void mostra2(struct arvore *pont_arv, int cont,char lado)
{
char raiz_2;
int i;
struct arvore *no_atual;
if(pont_arv)
{
 raiz_2 = (*pont_arv).dado;
 if(cont)
 {
  if(cont>1)
  {
   printf("|");
   for(i=0;i<cont;i++)
     printf(" ");
  }
  printf("|");
  for(i=0;i<cont;i++)
     printf("_");
 }
 printf("%c[%c]n",lado,raiz_2);
 no_atual = (*pont_arv).esq;
 if(no_atual)//SIM-esq
 {
  cont++;
  mostra2(no_atual,cont,'e');
}
 else//NÃO-esq
 {
  cont++;
  //Se você quiser mostrar traços no local das posições vazias, desmarque o bloco abaixo
  /*printf("|");
  for(i=0;i<cont;i++)
    printf("-");
  printf("n");*/
 }
 no_atual = (*pont_arv).dir;
 if(no_atual)//SIM-dir
    mostra2(no_atual,cont,'d');
 else//NÃO-dir
 {
  //Se você quiser mostrar traços no local das posições vazias, desmarque o bloco abaixo
  /*printf("|");
  for(i=0;i<cont;i++)
    printf("-");
  printf("n");*/
 }
}
}

void limpa_heap(struct arvore *pont_arv)
{
struct arvore *no_atual;
if(pont_arv)
{
 no_atual = (*pont_arv).esq;
 if(no_atual)//SIM-esq
    limpa_heap(no_atual);
 no_atual = (*pont_arv).dir;
 if(no_atual)//SIM-dir
    limpa_heap(no_atual);
 free(pont_arv);
 printf(".");
 sleep(500);
}
}

int main()
{
 raiz = NULL;
 printf("n*******            ARVORE BINARIA ORIENTADA                   *******n");
 printf("n           (pressione <enter> p/ elemento vazio)n");
 insere_arv(raiz,'r',' ');
 if(raiz)
{
//printf("nRaiz = %c",(*raiz).dado);
printf("nn******* Exibindo o relacionamento entre os elementos        *******n");

 mostra(raiz);
 printf("nn******* Exibindo em formato semelhante a 'Arvore de Diretorios' *******n");
 mostra2(raiz,0,'r');
}
else
   printf("nArvore vazia");
printf("n");
system("PAUSE");
printf("nLIMPANDO A MEMORIA HEAP, AGUARDE");
limpa_heap(raiz);
return 0;
}

Mais conteúdo relacionado

Mais procurados

Função do 2 grau
Função do 2 grauFunção do 2 grau
Função do 2 grauFabio Diaz
 
Aula (Função quadrática)
Aula (Função quadrática)Aula (Função quadrática)
Aula (Função quadrática)samuel vitor
 
Trabalho informatica educativa2 mary
Trabalho informatica educativa2 maryTrabalho informatica educativa2 mary
Trabalho informatica educativa2 maryjosiasjulio
 
Teclas de atalhos blender
Teclas de atalhos blenderTeclas de atalhos blender
Teclas de atalhos blender
Simeão Marchiori
 
apostila C++
apostila C++apostila C++
apostila C++
Augusto Passos
 
Conexão Java 2012 - Orientação a Objetos das Galáxias
Conexão Java 2012 - Orientação a Objetos das GaláxiasConexão Java 2012 - Orientação a Objetos das Galáxias
Conexão Java 2012 - Orientação a Objetos das Galáxias
Maurício Aniche
 
Pilha em C
Pilha em CPilha em C
função quadrática
função quadráticafunção quadrática
função quadrática
deisebento
 
Linguagem c wellington telles - aula 05
Linguagem c   wellington telles - aula 05Linguagem c   wellington telles - aula 05
Linguagem c wellington telles - aula 05
profwtelles
 
Equações do 2º grau graficos
Equações do 2º grau  graficosEquações do 2º grau  graficos
Equações do 2º grau graficosRenataMaira
 
02 função quadrática - parte II (raízes)
02   função quadrática - parte II (raízes)02   função quadrática - parte II (raízes)
02 função quadrática - parte II (raízes)Angelo Moreira Dos Reis
 
Função Quadrática - 2
Função Quadrática - 2Função Quadrática - 2
Função Quadrática - 2
numerosnamente
 
Projeto, execução. Desmistificando o ensino de Funções Quadráticas.
Projeto, execução. Desmistificando o ensino de Funções Quadráticas.Projeto, execução. Desmistificando o ensino de Funções Quadráticas.
Projeto, execução. Desmistificando o ensino de Funções Quadráticas.
Adrienne Oliveira
 
Função Quadrática
Função QuadráticaFunção Quadrática
Função Quadrática
Mayara Permanhane
 
Função do 2º grau
Função do 2º grauFunção do 2º grau
Função do 2º grauleilamaluf
 
Função quadrática
Função quadráticaFunção quadrática
Função quadráticalucienejade
 
Árvore Binária
Árvore BináriaÁrvore Binária
Árvore Binária
Elaine Cecília Gatto
 
Função quadrática
Função quadráticaFunção quadrática
Função quadrática
Pausa Matemática
 
Orientacoes graphmatica
Orientacoes graphmaticaOrientacoes graphmatica
Orientacoes graphmatica
Jonatan R.Z de Moraes
 

Mais procurados (20)

Função do 2 grau
Função do 2 grauFunção do 2 grau
Função do 2 grau
 
Aula (Função quadrática)
Aula (Função quadrática)Aula (Função quadrática)
Aula (Função quadrática)
 
Trabalho informatica educativa2 mary
Trabalho informatica educativa2 maryTrabalho informatica educativa2 mary
Trabalho informatica educativa2 mary
 
Teclas de atalhos blender
Teclas de atalhos blenderTeclas de atalhos blender
Teclas de atalhos blender
 
apostila C++
apostila C++apostila C++
apostila C++
 
Conexão Java 2012 - Orientação a Objetos das Galáxias
Conexão Java 2012 - Orientação a Objetos das GaláxiasConexão Java 2012 - Orientação a Objetos das Galáxias
Conexão Java 2012 - Orientação a Objetos das Galáxias
 
Pilha em C
Pilha em CPilha em C
Pilha em C
 
função quadrática
função quadráticafunção quadrática
função quadrática
 
Linguagem c wellington telles - aula 05
Linguagem c   wellington telles - aula 05Linguagem c   wellington telles - aula 05
Linguagem c wellington telles - aula 05
 
Equações do 2º grau graficos
Equações do 2º grau  graficosEquações do 2º grau  graficos
Equações do 2º grau graficos
 
02 função quadrática - parte II (raízes)
02   função quadrática - parte II (raízes)02   função quadrática - parte II (raízes)
02 função quadrática - parte II (raízes)
 
Função Quadrática - 2
Função Quadrática - 2Função Quadrática - 2
Função Quadrática - 2
 
Projeto, execução. Desmistificando o ensino de Funções Quadráticas.
Projeto, execução. Desmistificando o ensino de Funções Quadráticas.Projeto, execução. Desmistificando o ensino de Funções Quadráticas.
Projeto, execução. Desmistificando o ensino de Funções Quadráticas.
 
Função Quadrática
Função QuadráticaFunção Quadrática
Função Quadrática
 
Função do 2º grau
Função do 2º grauFunção do 2º grau
Função do 2º grau
 
Lista de exercícios XIV Python para Zumbis
Lista de exercícios XIV Python para ZumbisLista de exercícios XIV Python para Zumbis
Lista de exercícios XIV Python para Zumbis
 
Função quadrática
Função quadráticaFunção quadrática
Função quadrática
 
Árvore Binária
Árvore BináriaÁrvore Binária
Árvore Binária
 
Função quadrática
Função quadráticaFunção quadrática
Função quadrática
 
Orientacoes graphmatica
Orientacoes graphmaticaOrientacoes graphmatica
Orientacoes graphmatica
 

Semelhante a Árvore Binária em C

Lista simplesmente encadeada
Lista simplesmente encadeada Lista simplesmente encadeada
Lista simplesmente encadeada
Elaine Cecília Gatto
 
Aula14
Aula14Aula14
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)
Ricardo Terra
 
Função malloc
Função mallocFunção malloc
Javascript The good, bad and ugly parts
Javascript The good, bad and ugly partsJavascript The good, bad and ugly parts
Javascript The good, bad and ugly parts
Fabian Carlos
 
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoriaRicardo Bolanho
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
Elaine Cecília Gatto
 
Introdução a programação gráfica com Processing - Aula 01
Introdução a programação gráfica com Processing - Aula 01Introdução a programação gráfica com Processing - Aula 01
Introdução a programação gráfica com Processing - Aula 01
Lucas Cabral
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STL
Marcos Castro
 
Cheat sheet - String Java (Referência rápida)
Cheat sheet - String Java (Referência rápida)Cheat sheet - String Java (Referência rápida)
Cheat sheet - String Java (Referência rápida)
Rafael Liberato
 
1 exercicio de vectores em C
1 exercicio de vectores em C1 exercicio de vectores em C
1 exercicio de vectores em C
Luis Borges Gouveia
 

Semelhante a Árvore Binária em C (14)

Lista ligada simples
Lista ligada simplesLista ligada simples
Lista ligada simples
 
Lista simplesmente encadeada
Lista simplesmente encadeada Lista simplesmente encadeada
Lista simplesmente encadeada
 
Aula14
Aula14Aula14
Aula14
 
Linguagem C 09 Ponteiros
Linguagem C 09 PonteirosLinguagem C 09 Ponteiros
Linguagem C 09 Ponteiros
 
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)
 
Função malloc
Função mallocFunção malloc
Função malloc
 
Javascript The good, bad and ugly parts
Javascript The good, bad and ugly partsJavascript The good, bad and ugly parts
Javascript The good, bad and ugly parts
 
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Java script aula 04 - objeto array
Java script   aula 04 - objeto arrayJava script   aula 04 - objeto array
Java script aula 04 - objeto array
 
Introdução a programação gráfica com Processing - Aula 01
Introdução a programação gráfica com Processing - Aula 01Introdução a programação gráfica com Processing - Aula 01
Introdução a programação gráfica com Processing - Aula 01
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STL
 
Cheat sheet - String Java (Referência rápida)
Cheat sheet - String Java (Referência rápida)Cheat sheet - String Java (Referência rápida)
Cheat sheet - String Java (Referência rápida)
 
1 exercicio de vectores em C
1 exercicio de vectores em C1 exercicio de vectores em C
1 exercicio de vectores em C
 

Mais de Luiz Francisco Bozo

Modelo totem
Modelo totemModelo totem
Modelo totem
Luiz Francisco Bozo
 
Esboços de chassis e componentes internos de Servidor
Esboços de chassis e componentes internos de ServidorEsboços de chassis e componentes internos de Servidor
Esboços de chassis e componentes internos de Servidor
Luiz Francisco Bozo
 
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxTutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Luiz Francisco Bozo
 
Tutorial do shell script para criar imagens de HDs Win7 usando Linux
Tutorial do shell script para criar imagens de HDs Win7 usando LinuxTutorial do shell script para criar imagens de HDs Win7 usando Linux
Tutorial do shell script para criar imagens de HDs Win7 usando Linux
Luiz Francisco Bozo
 
Fila em C
Fila em CFila em C
Alocação Dinâmica em C
Alocação Dinâmica em CAlocação Dinâmica em C
Alocação Dinâmica em C
Luiz Francisco Bozo
 
Configurar Kernel Linux para usar os Sensores de uma Placa-mãe
Configurar Kernel Linux para usar os Sensores de uma Placa-mãeConfigurar Kernel Linux para usar os Sensores de uma Placa-mãe
Configurar Kernel Linux para usar os Sensores de uma Placa-mãe
Luiz Francisco Bozo
 
Display HD44780 usando PIC 18F4550 e USB
Display HD44780 usando PIC 18F4550 e USBDisplay HD44780 usando PIC 18F4550 e USB
Display HD44780 usando PIC 18F4550 e USB
Luiz Francisco Bozo
 
Configuração do Router/Bridge Wireless Tsunami
Configuração do Router/Bridge Wireless TsunamiConfiguração do Router/Bridge Wireless Tsunami
Configuração do Router/Bridge Wireless Tsunami
Luiz Francisco Bozo
 
Pequeno exemplo sobre strings nmea
Pequeno exemplo sobre strings nmeaPequeno exemplo sobre strings nmea
Pequeno exemplo sobre strings nmea
Luiz Francisco Bozo
 
Resumo gps
Resumo gpsResumo gps
Função Retorna MAC ADDRESS do Adaptador de rede
Função Retorna MAC ADDRESS do Adaptador de redeFunção Retorna MAC ADDRESS do Adaptador de rede
Função Retorna MAC ADDRESS do Adaptador de rede
Luiz Francisco Bozo
 
Status Configuração inicia router/bridge wireless Tsunamil
Status Configuração inicia router/bridge wireless TsunamilStatus Configuração inicia router/bridge wireless Tsunamil
Status Configuração inicia router/bridge wireless Tsunamil
Luiz Francisco Bozo
 
Chipset
ChipsetChipset
Kernel driver
Kernel driverKernel driver
Kernel driver
Luiz Francisco Bozo
 
Pmbok e Agil (folha 01)
Pmbok e Agil (folha 01)Pmbok e Agil (folha 01)
Pmbok e Agil (folha 01)
Luiz Francisco Bozo
 
Roteiro IOC 05
Roteiro IOC 05Roteiro IOC 05
Roteiro IOC 05
Luiz Francisco Bozo
 
Roteiro IOC 03_2
Roteiro IOC 03_2Roteiro IOC 03_2
Roteiro IOC 03_2
Luiz Francisco Bozo
 
Roteiro IOC 03_1
Roteiro IOC 03_1Roteiro IOC 03_1
Roteiro IOC 03_1
Luiz Francisco Bozo
 
Roteiro IOC 02
Roteiro IOC 02Roteiro IOC 02
Roteiro IOC 02
Luiz Francisco Bozo
 

Mais de Luiz Francisco Bozo (20)

Modelo totem
Modelo totemModelo totem
Modelo totem
 
Esboços de chassis e componentes internos de Servidor
Esboços de chassis e componentes internos de ServidorEsboços de chassis e componentes internos de Servidor
Esboços de chassis e componentes internos de Servidor
 
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxTutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando Linux
 
Tutorial do shell script para criar imagens de HDs Win7 usando Linux
Tutorial do shell script para criar imagens de HDs Win7 usando LinuxTutorial do shell script para criar imagens de HDs Win7 usando Linux
Tutorial do shell script para criar imagens de HDs Win7 usando Linux
 
Fila em C
Fila em CFila em C
Fila em C
 
Alocação Dinâmica em C
Alocação Dinâmica em CAlocação Dinâmica em C
Alocação Dinâmica em C
 
Configurar Kernel Linux para usar os Sensores de uma Placa-mãe
Configurar Kernel Linux para usar os Sensores de uma Placa-mãeConfigurar Kernel Linux para usar os Sensores de uma Placa-mãe
Configurar Kernel Linux para usar os Sensores de uma Placa-mãe
 
Display HD44780 usando PIC 18F4550 e USB
Display HD44780 usando PIC 18F4550 e USBDisplay HD44780 usando PIC 18F4550 e USB
Display HD44780 usando PIC 18F4550 e USB
 
Configuração do Router/Bridge Wireless Tsunami
Configuração do Router/Bridge Wireless TsunamiConfiguração do Router/Bridge Wireless Tsunami
Configuração do Router/Bridge Wireless Tsunami
 
Pequeno exemplo sobre strings nmea
Pequeno exemplo sobre strings nmeaPequeno exemplo sobre strings nmea
Pequeno exemplo sobre strings nmea
 
Resumo gps
Resumo gpsResumo gps
Resumo gps
 
Função Retorna MAC ADDRESS do Adaptador de rede
Função Retorna MAC ADDRESS do Adaptador de redeFunção Retorna MAC ADDRESS do Adaptador de rede
Função Retorna MAC ADDRESS do Adaptador de rede
 
Status Configuração inicia router/bridge wireless Tsunamil
Status Configuração inicia router/bridge wireless TsunamilStatus Configuração inicia router/bridge wireless Tsunamil
Status Configuração inicia router/bridge wireless Tsunamil
 
Chipset
ChipsetChipset
Chipset
 
Kernel driver
Kernel driverKernel driver
Kernel driver
 
Pmbok e Agil (folha 01)
Pmbok e Agil (folha 01)Pmbok e Agil (folha 01)
Pmbok e Agil (folha 01)
 
Roteiro IOC 05
Roteiro IOC 05Roteiro IOC 05
Roteiro IOC 05
 
Roteiro IOC 03_2
Roteiro IOC 03_2Roteiro IOC 03_2
Roteiro IOC 03_2
 
Roteiro IOC 03_1
Roteiro IOC 03_1Roteiro IOC 03_1
Roteiro IOC 03_1
 
Roteiro IOC 02
Roteiro IOC 02Roteiro IOC 02
Roteiro IOC 02
 

Último

Saudações e como se apresentar em português
Saudações e como se apresentar em portuguêsSaudações e como se apresentar em português
Saudações e como se apresentar em português
jacctradutora
 
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
cristianofiori1
 
UFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manualUFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manual
Manuais Formação
 
o que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sulo que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sul
CarlaInsStaub
 
Roteiro para análise do Livro Didático .pptx
Roteiro para análise do Livro Didático .pptxRoteiro para análise do Livro Didático .pptx
Roteiro para análise do Livro Didático .pptx
pamellaaraujo10
 
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxSlides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
IsabelPereira2010
 
Anatomia I - Aparelho Locomotor e Cardiovascular
Anatomia I - Aparelho Locomotor e CardiovascularAnatomia I - Aparelho Locomotor e Cardiovascular
Anatomia I - Aparelho Locomotor e Cardiovascular
PatrickMuniz8
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédio
ifbauab
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
Letícia Butterfield
 
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
CrislaineSouzaSantos
 
Acróstico - Reciclar é preciso
Acróstico   -  Reciclar é preciso Acróstico   -  Reciclar é preciso
Acróstico - Reciclar é preciso
Mary Alvarenga
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
PROPOSTA CURRICULAR EDUCACAO FISICA.docx
PROPOSTA CURRICULAR  EDUCACAO FISICA.docxPROPOSTA CURRICULAR  EDUCACAO FISICA.docx
PROPOSTA CURRICULAR EDUCACAO FISICA.docx
Escola Municipal Jesus Cristo
 
Unificação da Itália e a formação da Alemanha
Unificação da Itália e a formação da AlemanhaUnificação da Itália e a formação da Alemanha
Unificação da Itália e a formação da Alemanha
Acrópole - História & Educação
 
Evolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e LamarckEvolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e Lamarck
luanakranz
 
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptxSlides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básicoPowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
Pereira801
 
Manejo de feridas - Classificação e cuidados.
Manejo de feridas - Classificação e cuidados.Manejo de feridas - Classificação e cuidados.
Manejo de feridas - Classificação e cuidados.
RafaelNeves651350
 
curso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdfcurso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdf
LeandroTelesRocha2
 

Último (20)

Saudações e como se apresentar em português
Saudações e como se apresentar em portuguêsSaudações e como se apresentar em português
Saudações e como se apresentar em português
 
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
 
UFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manualUFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manual
 
o que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sulo que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sul
 
Roteiro para análise do Livro Didático .pptx
Roteiro para análise do Livro Didático .pptxRoteiro para análise do Livro Didático .pptx
Roteiro para análise do Livro Didático .pptx
 
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxSlides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
 
Anatomia I - Aparelho Locomotor e Cardiovascular
Anatomia I - Aparelho Locomotor e CardiovascularAnatomia I - Aparelho Locomotor e Cardiovascular
Anatomia I - Aparelho Locomotor e Cardiovascular
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédio
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
 
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
 
Acróstico - Reciclar é preciso
Acróstico   -  Reciclar é preciso Acróstico   -  Reciclar é preciso
Acróstico - Reciclar é preciso
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
PROPOSTA CURRICULAR EDUCACAO FISICA.docx
PROPOSTA CURRICULAR  EDUCACAO FISICA.docxPROPOSTA CURRICULAR  EDUCACAO FISICA.docx
PROPOSTA CURRICULAR EDUCACAO FISICA.docx
 
Unificação da Itália e a formação da Alemanha
Unificação da Itália e a formação da AlemanhaUnificação da Itália e a formação da Alemanha
Unificação da Itália e a formação da Alemanha
 
Evolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e LamarckEvolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e Lamarck
 
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptxSlides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
 
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básicoPowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
 
Manejo de feridas - Classificação e cuidados.
Manejo de feridas - Classificação e cuidados.Manejo de feridas - Classificação e cuidados.
Manejo de feridas - Classificação e cuidados.
 
curso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdfcurso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdf
 

Árvore Binária em C

  • 1. #include <stdio.h> #include <stdlib.h> //#include <conio.h> struct arvore { struct arvore *esq; char dado; struct arvore *dir; } *raiz; struct arvore* cria_no(struct arvore *atual,char dado,char lado) { struct arvore *no; no = (struct arvore*) malloc(sizeof(struct arvore)); (*no).esq = NULL; (*no).dado = dado; (*no).dir = NULL; if (!raiz) raiz = no; else if (lado == 'e') (*atual).esq = no; else (*atual).dir = no; return(no); } void insere_arv(struct arvore *no_filho,char lado,char dado) { char carac; struct arvore *sub_arv; if(lado == 'r') printf("nRAIZ = "); else if(lado == 'e') printf("nESQ DE %c = ",dado); else printf("nDIR DE %c = ",dado); carac = getche(); if(carac != 13)//se digitar <enter> passa p/ o próximo { sub_arv = cria_no(no_filho,carac,lado); insere_arv(sub_arv,'e',carac); insere_arv(sub_arv,'d',carac); } }
  • 2. void mostra(struct arvore *pont_arv) { char esquerda, direita; struct arvore *no_atual; if(pont_arv) { no_atual = (*pont_arv).esq; if(no_atual) esquerda = (*no_atual).dado; else esquerda = ' '; no_atual = (*pont_arv).dir; if(no_atual) direita = (*no_atual).dado; else direita = ' '; printf("n [ %c ] <--- [ %c ] ---> [ %c ]",esquerda,(*pont_arv).dado,direita); mostra((*pont_arv).esq); mostra((*pont_arv).dir); } } void mostra2(struct arvore *pont_arv, int cont,char lado) { char raiz_2; int i; struct arvore *no_atual; if(pont_arv) { raiz_2 = (*pont_arv).dado; if(cont) { if(cont>1) { printf("|"); for(i=0;i<cont;i++) printf(" "); } printf("|"); for(i=0;i<cont;i++) printf("_"); } printf("%c[%c]n",lado,raiz_2); no_atual = (*pont_arv).esq; if(no_atual)//SIM-esq { cont++; mostra2(no_atual,cont,'e');
  • 3. } else//NÃO-esq { cont++; //Se você quiser mostrar traços no local das posições vazias, desmarque o bloco abaixo /*printf("|"); for(i=0;i<cont;i++) printf("-"); printf("n");*/ } no_atual = (*pont_arv).dir; if(no_atual)//SIM-dir mostra2(no_atual,cont,'d'); else//NÃO-dir { //Se você quiser mostrar traços no local das posições vazias, desmarque o bloco abaixo /*printf("|"); for(i=0;i<cont;i++) printf("-"); printf("n");*/ } } } void limpa_heap(struct arvore *pont_arv) { struct arvore *no_atual; if(pont_arv) { no_atual = (*pont_arv).esq; if(no_atual)//SIM-esq limpa_heap(no_atual); no_atual = (*pont_arv).dir; if(no_atual)//SIM-dir limpa_heap(no_atual); free(pont_arv); printf("."); sleep(500); } } int main() { raiz = NULL; printf("n******* ARVORE BINARIA ORIENTADA *******n"); printf("n (pressione <enter> p/ elemento vazio)n"); insere_arv(raiz,'r',' '); if(raiz)
  • 4. { //printf("nRaiz = %c",(*raiz).dado); printf("nn******* Exibindo o relacionamento entre os elementos *******n"); mostra(raiz); printf("nn******* Exibindo em formato semelhante a 'Arvore de Diretorios' *******n"); mostra2(raiz,0,'r'); } else printf("nArvore vazia"); printf("n"); system("PAUSE"); printf("nLIMPANDO A MEMORIA HEAP, AGUARDE"); limpa_heap(raiz); return 0; }