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;
}

