SHARE
TWEET

Untitled

a guest May 19th, 2019 60 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top