karlangadas

ALGORITMIA EX2 2015-2 Pregunta 4

Dec 2nd, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.59 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef char TInfo;
  5.  
  6. typedef struct Node{
  7.     TInfo info;
  8.     struct Node *left, *right;
  9. }TNode;
  10.  
  11. typedef struct tree{
  12.     TNode* root;
  13. }TBinaryTree;
  14.  
  15.  
  16. void init_tree(TBinaryTree* T,char c);
  17. void postorden(TNode* node,int);
  18. void insertR(TNode* N, TInfo x);
  19. void insertL(TNode* N, TInfo x);
  20.  
  21.  
  22. void main(){
  23.     TBinaryTree T;
  24.     init_tree(&T,'A');
  25.     insertL(T.root,'B');
  26.     insertR(T.root,'C');
  27.     insertR(T.root->right,'D');
  28.     insertR(T.root->right->right,'E');
  29.     insertR(T.root->right->right->right,'G');
  30.     insertL(T.root->right->right->right,'F');
  31.     insertL(T.root->left,'H');
  32.     insertR(T.root->left->left,'J');
  33.     insertL(T.root->left->left,'I');
  34.     insertR(T.root->left->left->left,'K');
  35.     insertL(T.root->left->left->left->right,'L');
  36.     insertR(T.root->left->left->left->right,'M');
  37.    
  38.     postorden(T.root,1);
  39.  
  40. }
  41.  
  42.  
  43. void init_tree(TBinaryTree* T, char c){
  44.     TNode *nuevo=malloc(sizeof(TNode));
  45.     nuevo->info=c;
  46.     nuevo->right=NULL;
  47.     nuevo->left=NULL;
  48.    
  49.     T->root = nuevo;
  50. }
  51.  
  52. void postorden(TNode* node,int i){
  53.     if(node==NULL)
  54.         return;
  55.     postorden(node->left,i+1);
  56.     postorden(node->right,i+1);
  57.     if ((node->left==NULL && node->right==NULL)||i==1 )
  58.         printf("%c\n", node->info);
  59. }
  60.  
  61. void insertR(TNode* N, TInfo x){
  62.     TNode *nuevo=malloc(sizeof(TNode));
  63.    
  64.     nuevo->info=x;
  65.     nuevo->right=NULL;
  66.     nuevo->left=NULL;
  67.    
  68.    
  69.     N->right=nuevo;
  70. }
  71. void insertL(TNode* N, TInfo x){
  72.     TNode *nuevo=malloc(sizeof(TNode));
  73.    
  74.     nuevo->info=x;
  75.     nuevo->right=NULL;
  76.     nuevo->left=NULL;
  77.    
  78.     N->left=nuevo;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment