Advertisement
Guest User

sm10-3main.c

a guest
Feb 23rd, 2020
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.88 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct Node
  6. {
  7.     double       key;
  8.     struct Node *left;
  9.     struct Node *right;
  10.     char        *str;
  11. } Node;
  12.  
  13. int tree_find(struct Node *root, double key, char **pstr);
  14.  
  15. Node *init_node(double key)
  16. {
  17.     Node *node = calloc(1, sizeof(*node));
  18.     node->key = key;
  19.     node->left = NULL;
  20.     node->right = NULL;
  21.     node->str = calloc(100, sizeof(*(node->str)));
  22.     return node;
  23. }
  24.  
  25. int main(void)
  26. {
  27.     Node *node = init_node(10.000000001);
  28.     node->left = init_node(-89.99999999);
  29.     node->right = init_node(110.0);
  30.     strcpy(node->str, "node");
  31.     strcpy(node->left->str, "left node");
  32.     strcpy(node->right->str, "right node");
  33.     char *ans = NULL;
  34.  
  35.     printf("%d\t", tree_find(node, 10.0, &ans));
  36.     printf("%s\n", !ans ? "(null)" : ans);
  37.     printf("1\tnode\n\n");
  38.     ans = NULL;
  39.  
  40.     printf("%d\t", tree_find(node, -90.0, &ans));
  41.     printf("%s\n", !ans ? "(null)" : ans);
  42.     printf("1\tleft node\n\n");
  43.     ans = NULL;
  44.  
  45.     printf("%d\t", tree_find(node, 110.0, &ans));
  46.     printf("%s\n", !ans ? "(null)" : ans);
  47.     printf("1\tright node\n\n");
  48.     ans = NULL;
  49.  
  50.     printf("%d\t", tree_find(node, -190.0, &ans));
  51.     printf("%s\n", !ans ? "(null)" : ans);
  52.     printf("0\t(null)\n\n");
  53.     ans = NULL;
  54.  
  55.     printf("%d\t", tree_find(node, 210.0, &ans));
  56.     printf("%s\n", !ans ? "(null)" : ans);
  57.     printf("0\t(null)\n\n");
  58.     ans = NULL;
  59.  
  60.     printf("%d\t", tree_find(node, -50.0, &ans));
  61.     printf("%s\n", !ans ? "(null)" : ans);
  62.     printf("0\t(null)\n\n");
  63.     ans = NULL;
  64.  
  65.     printf("%d\t", tree_find(node, 50.0, &ans));
  66.     printf("%s\n", !ans ? "(null)" : ans);
  67.     printf("0\t(null)\n\n");
  68.     ans = NULL;
  69.  
  70.     free(node->left->str);
  71.     free(node->right->str);
  72.     free(node->str);
  73.  
  74.     free(node->left);
  75.     free(node->right);
  76.     free(node);
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement