Advertisement
Guest User

Untitled

a guest
May 19th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h> //clear screen
  4.  
  5. typedef struct treeBST
  6. {
  7. int number;
  8. struct treeBST* lchild;
  9. struct treeBST* rchild;
  10. }bst;
  11.  
  12. //skrócenie polecenia czyszczenia ekranu
  13. void clear()
  14. {
  15. system("cls");
  16. }
  17.  
  18. //1b - zapisanie elementu użytkownika do drzewa z 1a
  19. void add(bst** tree, bst* new1)
  20. {
  21. int done = 0;
  22. while(done == 0)
  23. {
  24. if((*tree) == NULL)
  25. {
  26. //printf("Wchodzę\n"); //test czy wchodzi
  27. *tree = new1;
  28. new1->lchild = NULL;
  29. new1->rchild = NULL;
  30. done = 1;
  31. }
  32. else
  33. {
  34. if (new1->number < (*tree)->number)
  35. {
  36. tree = &((*tree)->lchild);
  37. //printf("Lewa"); //test czy wchodzi
  38. }
  39. else
  40. {
  41. tree = &((*tree)->rchild);
  42. //printf("prawy"); //test
  43. }
  44. }
  45. }
  46. }
  47.  
  48. //1a - wczytanie elementu użytkownika
  49. void addBranch(bst** tree)
  50. {
  51. clear();
  52.  
  53. bst* new1= (bst*)malloc(sizeof(bst));
  54.  
  55. printf("Podaj numer nowej galezi:\n");
  56. scanf("%d", &new1->number);
  57.  
  58. add(tree, new1);
  59. printf("Dodano %d do drzewa\n", new1->number);
  60. getch();
  61. clear();
  62. }
  63.  
  64. //2
  65. void printLVR(bst* tree)
  66. {
  67. bst* srch = tree;
  68.  
  69. if (srch->lchild != NULL)
  70. printLVR(tree->lchild);
  71. printf("%d, ", srch->number);
  72. if (srch->rchild != NULL)
  73. printLVR(tree->rchild);
  74.  
  75. }
  76.  
  77.  
  78. int main()
  79. {
  80. int choose;
  81. bst* tree = NULL;
  82.  
  83. printf("Witamy w programie obslugi drzew BST!\n");
  84.  
  85. while(choose!=9)
  86. {
  87. printf("Oto dostepne opcje:\n");
  88. printf("1 - Dodaj element\n");
  89. printf("2 - Wypisz elementy LVR\n");
  90.  
  91. printf("9 - Zakoncz program\n");
  92. scanf("%i", &choose);
  93. switch(choose)
  94. {
  95. case 1:
  96. addBranch(&tree);
  97. break;
  98. case 2:
  99. clear();
  100. if (tree != NULL)
  101. printLVR(tree);
  102. else
  103. printf("Puste drzewo...\n");
  104. getch();
  105. clear();
  106. break;
  107. case 9:
  108. clear();
  109. printf("Do widzenia\n");
  110. break;
  111. default:
  112. clear();
  113. printf("Funkcja niedostepna, prosze wybierz inna\n...\n");
  114. getch();
  115. clear();
  116. break;
  117. }
  118. }
  119. getch();
  120. return 0;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement