Advertisement
Guest User

bst new

a guest
Jan 27th, 2015
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. using namespace std;
  5.  
  6. class drzewo
  7. {      
  8.     struct element
  9.     {          
  10.         int wartosc;
  11.         element *rodzic;
  12.         element *l_syn;
  13.         element *p_syn;
  14.    
  15.         element()
  16.         {
  17.             l_syn = NULL;
  18.             p_syn = NULL;
  19.             rodzic = NULL;
  20.         }
  21.     };
  22.    
  23.     element *root;
  24.  
  25.  
  26.  public:  
  27.     drzewo()
  28.     {
  29.         root = NULL;
  30.     }
  31.    
  32.    
  33.     ~drzewo()
  34.     {
  35.         delete root;
  36.     }
  37.    
  38.    
  39.     element *getRoot()
  40.     {
  41.         return root;
  42.     }
  43.    
  44.    
  45.     void insert(int liczba)
  46.     {
  47.         element *pocz = new element;
  48.         pocz->wartosc = liczba;
  49.         if (root == NULL)
  50.         {
  51.             root = pocz;
  52.         }
  53.         else
  54.         {
  55.            element *zmienna1 = NULL;
  56.            element *zmienna2 = root;
  57.            while(zmienna2 != NULL){
  58.                zmienna1 = zmienna2;
  59.                if((pocz->wartosc)<(zmienna2->wartosc)){
  60.                    zmienna2 = zmienna2->l_syn;
  61.                }
  62.                else{
  63.                    zmienna2 = zmienna2->p_syn;
  64.                }
  65.            }
  66.            pocz->rodzic = zmienna1;
  67.      
  68.            if((pocz->wartosc)<(zmienna1->wartosc)){
  69.                zmienna1->l_syn = pocz;
  70.            }
  71.            else{
  72.                zmienna1->p_syn = pocz;
  73.            }
  74.         }
  75.     }
  76.    
  77.    
  78.     element *szukaj(element *miejsce, int szukana)
  79.     {
  80.         if(miejsce == NULL)
  81.         {
  82.             cout << "0";
  83.             return miejsce;
  84.         }
  85.        
  86.         if((miejsce->wartosc) == szukana)
  87.         {
  88.             cout << "1";
  89.             return miejsce;
  90.         }
  91.        
  92.         if(szukana < (miejsce->wartosc))
  93.         {
  94.             cout << "L";
  95.             return szukaj(miejsce->l_syn, szukana);
  96.         }
  97.         else
  98.         {
  99.             cout << "P";
  100.             return szukaj(miejsce->p_syn, szukana);
  101.         }
  102.     }
  103. };
  104.  
  105.  
  106. int main(int argc, char** argv)
  107. {
  108.     int ile;
  109.     cin >> ile;
  110.     drzewo *tree = new drzewo;
  111.     while(ile--)
  112.     {
  113.         int x;
  114.         cin >> x;
  115.         tree->insert(x);
  116.     }
  117.    
  118.     int szukana;
  119.     cin >> szukana;
  120.     tree->szukaj(tree->getRoot(), szukana);
  121.  
  122.     return 0;
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement