Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- class drzewo
- {
- struct element
- {
- int wartosc;
- element *rodzic;
- element *l_syn;
- element *p_syn;
- element()
- {
- l_syn = NULL;
- p_syn = NULL;
- rodzic = NULL;
- }
- };
- element *root;
- public:
- drzewo()
- {
- root = NULL;
- }
- ~drzewo()
- {
- delete root;
- }
- element *getRoot()
- {
- return root;
- }
- void insert(int liczba)
- {
- element *pocz = new element;
- pocz->wartosc = liczba;
- if (root == NULL)
- {
- root = pocz;
- }
- else
- {
- element *zmienna1 = NULL;
- element *zmienna2 = root;
- while(zmienna2 != NULL){
- zmienna1 = zmienna2;
- if((pocz->wartosc)<(zmienna2->wartosc)){
- zmienna2 = zmienna2->l_syn;
- }
- else{
- zmienna2 = zmienna2->p_syn;
- }
- }
- pocz->rodzic = zmienna1;
- if((pocz->wartosc)<(zmienna1->wartosc)){
- zmienna1->l_syn = pocz;
- }
- else{
- zmienna1->p_syn = pocz;
- }
- }
- }
- element *szukaj(element *miejsce, int szukana)
- {
- if(miejsce == NULL)
- {
- cout << "0";
- return miejsce;
- }
- if((miejsce->wartosc) == szukana)
- {
- cout << "1";
- return miejsce;
- }
- if(szukana < (miejsce->wartosc))
- {
- cout << "L";
- return szukaj(miejsce->l_syn, szukana);
- }
- else
- {
- cout << "P";
- return szukaj(miejsce->p_syn, szukana);
- }
- }
- };
- int main(int argc, char** argv)
- {
- int ile;
- cin >> ile;
- drzewo *tree = new drzewo;
- while(ile--)
- {
- int x;
- cin >> x;
- tree->insert(x);
- }
- int szukana;
- cin >> szukana;
- tree->szukaj(tree->getRoot(), szukana);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement