Advertisement
Gabriel_Rofl

Caetóis.c

Nov 7th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. typedef struct no{
  5.     int dado;
  6.  
  7.     struct no* esq;
  8.     struct no* dir;
  9. } t_no;
  10.  
  11.  
  12. //Assinaturas de Funções
  13. t_no* cria_no(int dado);
  14.  
  15. t_no* inserir(t_no* raiz, int dado);
  16.  
  17. void  pre_ordem(t_no* raiz);
  18. void  pos_ordem(t_no* raiz);
  19. void  em_ordem(t_no* raiz);
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26. //Implementações das assinaturas
  27. t_no* cria_no(int dado){
  28.     t_no* resultado = (t_no *) malloc(sizeof(t_no));
  29.  
  30.     resultado->dado = dado;
  31.     resultado->esq  = NULL;
  32.     resultado->dir  = NULL;
  33.  
  34.     return resultado;
  35.  
  36. }//end cria_no
  37.  
  38.  
  39. t_no* inserir(t_no* raiz, int dado){
  40.    
  41.     if(raiz == NULL){
  42.         return cria_no(dado);
  43.     }else{
  44.        
  45.         if(raiz->dado > dado)
  46.             raiz->esq = inserir(raiz->esq, dado);
  47.         else if(raiz->dado < dado)
  48.             raiz->dir = inserir(raiz->dir, dado);
  49.     }
  50.  
  51.     return raiz;
  52.  
  53. }//end inserir
  54.  
  55.  
  56. void pre_ordem(t_no* raiz){
  57.     if( raiz != NULL){
  58.         printf("%d\n", raiz->dado);
  59.  
  60.         pre_ordem(raiz->esq);
  61.         pre_ordem(raiz->dir);
  62.     }
  63. }
  64.  
  65. void pos_ordem(t_no* raiz){
  66.     if( raiz != NULL){
  67.         pos_ordem(raiz->esq);
  68.         pos_ordem(raiz->dir);
  69.  
  70.         printf("%d\n", raiz->dado);
  71.     }
  72. }
  73.  
  74. void  em_ordem(t_no* raiz){
  75.     if( raiz != NULL){
  76.         em_ordem(raiz->esq);
  77.         printf("%d\n", raiz->dado);
  78.         em_ordem(raiz->dir);
  79.     }
  80. }
  81.  
  82.  
  83. int main(){
  84.  
  85.     t_no* raiz = NULL;
  86.  
  87.     raiz = inserir(raiz, 50);
  88.     raiz = inserir(raiz, 17);
  89.     raiz = inserir(raiz, 72);
  90.     raiz = inserir(raiz, 12);
  91.     raiz = inserir(raiz, 23);
  92.     raiz = inserir(raiz, 54);
  93.     raiz = inserir(raiz, 76);
  94.     raiz = inserir(raiz, 9);
  95.     raiz = inserir(raiz, 14);
  96.     raiz = inserir(raiz, 19);
  97.     raiz = inserir(raiz, 67);
  98.  
  99.     printf("\nPre-ordem\n");
  100.     pre_ordem(raiz);
  101.  
  102.     printf("\nPos-ordem\n");
  103.     pos_ordem(raiz);
  104.  
  105.     printf("\nEm-ordem\n");
  106.     em_ordem(raiz);
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement