[C++] Binarne drzewo przeszukiwań BST (Binary Search Tree)

Każdy programista spotka w pewnym momencie na swojej Å›cieżce drzewo binarne. Jest to rodzaj drzewa, w którym wierzchoÅ‚ki zawierajÄ… informacjÄ™ do swoich dzieci – lewego i prawego. Zaprezentuje w tym wpisie, przykÅ‚adowÄ… implementacjÄ™ Binarnego drzewa przeszukiwaÅ„ (BST) w C++ dla liczb caÅ‚kowitych za pomocÄ… struktur wiÄ…zanych – pojedynczy wierzchoÅ‚ek zawiera informacjÄ™ o swojej wartoÅ›ci i wskaźniki na swoje dzieci.

#include <cstdlib>
#include <iostream>

using namespace std;

struct node // deklaracja wezla drzewa
{
       int key;
       node *left, *right, *top;
};

void dodaj_wezel(int z, node *n)
{
    node *x=new node;
    x->left=x->right=NULL;
    x->key=z;

while(1)
{
    if(z<n->key)
    {
     if(n->left==NULL)
     {
                      n->left=x;
                      break;
     }
     else
     n=n->left;
    }
    else
    {
         if(n->right==NULL)
         {                 n->right=x;
                        break;
         }
         else
         n=n->right;

   }

}

};

void wyswietl_inorder(node *n)
{
if(n!=NULL)
{
cout<<n->key<<endl;
wyswietl_inorder(n->left);
wyswietl_inorder(n->right);
}
}

int main(int argc, char *argv[])
{
    node *n=new node; // przydzielona pamiec dla nowego wezla

    int wartosci[4]={1,2,4,5};
    // deklarujemy korzen
    n->left=n->right=n->top=NULL;
    n->key=0;

    dodaj_wezel(2,n);
     dodaj_wezel(7,n);
     dodaj_wezel(8,n);
     dodaj_wezel(4,n);
     dodaj_wezel(9,n);
     dodaj_wezel(1,n);

    wyswietl_inorder(n);

    system("PAUSE");
    return EXIT_SUCCESS;
}
Ten wpis został opublikowany w kategorii Algortymy i struktury danych, C++, Programowanie, Studia i oznaczony tagami , , , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>