Advertisement
adwas33

Untitled

Nov 12th, 2021
611
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.94 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. struct drzewoBST
  4. {
  5.     drzewoBST * up;
  6.     drzewoBST * left;
  7.     drzewoBST * right;
  8.   int val;
  9. };
  10. void addBstNode(drzewoBST *root, int x)
  11. {
  12.     if(root== nullptr)
  13.     {
  14.         drzewoBST *w=new drzewoBST();
  15.         w->left= nullptr;
  16.         w->right= nullptr;
  17.         w->val=x;
  18.         w=root;
  19.  
  20.     } else
  21.     {
  22.         if(x>=root->val)
  23.         {
  24.             addBstNode(root->right,x);
  25.         }else
  26.             addBstNode(root->left,x);
  27.     }
  28. }
  29. drzewoBST* szukaj(drzewoBST *root,int wartoscSzukana)
  30. {
  31.     if(root!= nullptr)
  32.     {
  33.         if(root->val==wartoscSzukana)
  34.         {
  35.             return root;
  36.         }
  37.         if(wartoscSzukana>root->val)
  38.         {
  39.             szukaj(root->right,wartoscSzukana);
  40.         }else szukaj(root->left,wartoscSzukana);
  41.  
  42.         return nullptr;
  43.     }
  44.  
  45. }
  46. //funkcja usuwająca liście tego drzewa
  47. void usunTo(drzewoBST *&root)
  48. {
  49.     delete root;
  50. }
  51.  
  52. void usunLiscie (drzewoBST *&root)
  53. {
  54.     if(root!= nullptr)
  55.     {
  56.         if(root->left== nullptr&&root->right== nullptr)//gdy nie ma możliwości zejścia w dół
  57.         {
  58.             usunTo(root);
  59.         }else
  60.         if(root->left!= nullptr)
  61.         {
  62.             usunLiscie(root->left);
  63.         }else if(root->right!= nullptr)
  64.         {
  65.             usunLiscie(root->right);
  66.         }
  67.     }
  68. }
  69. //inorder ( wyświetlanie )
  70. void inorder(drzewoBST *&root)
  71. {
  72.     if(root!= nullptr)
  73.     {
  74.         inorder(root->left);
  75.         cout<<root->val<<" ";
  76.         inorder(root->right);
  77.     }else
  78.     return;
  79. }
  80. int main() {
  81.   drzewoBST * drzewo=new drzewoBST();
  82.     addBstNode(drzewo,12);
  83.     addBstNode(drzewo,16);
  84.     addBstNode(drzewo,25);
  85.     addBstNode(drzewo,14);
  86.     addBstNode(drzewo,3);
  87.     addBstNode(drzewo,8);
  88.     addBstNode(drzewo,22);
  89.     addBstNode(drzewo,16);
  90.     addBstNode(drzewo,10);
  91.     addBstNode(drzewo,27);
  92.    
  93.     inorder(drzewo);
  94.  
  95.  
  96.  
  97.     return 0;
  98. }
  99.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement