Advertisement
Guest User

Untitled

a guest
Feb 18th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. typedef struct node_tree
  6. {
  7. int key;
  8. struct node_tree *l, *r;
  9. }node;
  10.  
  11. node * add(node *tree, int k)
  12. {
  13. node * nodeadd = (node*)malloc(sizeof(node));
  14. if (nodeadd)
  15. {
  16. nodeadd->key = k;
  17. nodeadd->l = NULL;
  18. nodeadd->r = NULL;
  19. }
  20. else
  21. {
  22. printf("no memory");
  23. }
  24. if (!tree)
  25. {
  26. tree = nodeadd;
  27. return 0;
  28. }
  29. node * t = tree;
  30. do
  31. {
  32. if (k <= t->key)
  33. {
  34. if (t->l) {
  35. t = t->l;
  36. }
  37. else
  38. {
  39. t->l = nodeadd;
  40. return tree;
  41. }
  42. }
  43. else
  44. {
  45. if (t->r)
  46. {
  47. t = t->r;
  48. }
  49. else
  50. {
  51. t->r = nodeadd;
  52. return tree;
  53. }
  54. }
  55.  
  56. } while (t);
  57.  
  58. }
  59.  
  60. int preorder(node * tree, FILE * fo)
  61. {
  62. //fo = fopen("output.txt", "w");
  63. node * temp = tree;
  64. if (temp)
  65. {
  66. fprintf(fo,"%d",temp->key);
  67. preorder(temp->l, fo);
  68. preorder(temp->r, fo);
  69. }
  70. }
  71.  
  72. void main()
  73. {
  74. node *tree = NULL;
  75. int k = 0;
  76. FILE *fi = fopen("input.txt", "r");
  77. while (!feof(fi))
  78. {
  79. fscanf(fi, "%d", &k);
  80. tree = add(tree, k);
  81. }
  82. fclose(fi);
  83. FILE *fo = fopen("output.txt", "r");
  84. preorder(tree,fo);
  85. fclose(fo);
  86.  
  87. system("pause");
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement