Advertisement
eduardovp97

tree.c

Nov 14th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "tree.h"
  4.  
  5. int arbolVacio(TTree *tree){
  6.     return tree->root == NULL;
  7. }
  8.  
  9. void crearArbol(TTree *tree){
  10.     tree->root = NULL;
  11. }
  12.  
  13. int insertarNodo(TNode *node,TNode *nuevo){
  14.     if(node->info == nuevo->info){
  15.         free(nuevo);
  16.         return 0;
  17.     }
  18.     if(node->info < nuevo->info){
  19.         if(node->der == NULL){
  20.             node->der = nuevo;
  21.             return 1;
  22.         }else
  23.             return insertarNodo(node->der,nuevo);
  24.     }
  25.     if(node->info > nuevo->info){
  26.         if(node->izq == NULL){
  27.             node->izq = nuevo;
  28.             return 1;
  29.         }else
  30.             return insertarNodo(node->izq,nuevo);
  31.     }
  32.    
  33. }
  34.  
  35. int insertar(TTree *tree, TData data){
  36.     TNode *nuevo = malloc(sizeof(TNode));
  37.     nuevo->info = data;
  38.     nuevo->izq = NULL;
  39.     nuevo->der = NULL;
  40.     if(arbolVacio(tree)){
  41.         tree->root = nuevo;
  42.     }else{
  43.         insertarNodo(tree->root,nuevo);
  44.     }
  45. }
  46.  
  47.  
  48.  
  49. void preorden(TNode *node){
  50.     printf("%d ",node->info);
  51.     if(node->izq != NULL)
  52.         preorden(node->izq);
  53.     if(node->der != NULL)
  54.         preorden(node->der);
  55. }
  56.  
  57. void enorden(TNode *node){
  58.     if(node->izq != NULL)
  59.         enorden(node->izq);
  60.     printf("%d ",node->info);
  61.     if(node->der != NULL)
  62.         enorden(node->der);
  63. }
  64.  
  65. void postorden(TNode *node){
  66.     if(node->izq != NULL)
  67.         postorden(node->izq);
  68.     if(node->der != NULL)
  69.         postorden(node->der);
  70.     printf("%d ",node->info);
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement