UÂżytkownik
Program zrobiony dzięki pomocy Mateusza Buczkowskiego. Wstawiam bo poprosił Paweł Braniek:)
#include <iostream>
using namespace std;
class node
{
private:
double data;
node *wsk_right;
node *wsk_left;
public:
node(double d, node *wskl = 0, node *wskp = 0)
{
data = d;
wsk_left = wskl;
wsk_right = wskp;
}
~node()
{
if(wsk_right) delete wsk_right;
if(wsk_left) delete wsk_left;
}
friend class drzewo;
};
class drzewo
{
private:
node *head;
public:
drzewo()
{
head = 0;
}
~drzewo()
{
delete head;
}
void add(double d)
{
if(head == 0)
{
head = new node(d);
}
else
{
node *wsk_temp = head;
while(1)
{
if(wsk_temp->data > d)
{
if(wsk_temp->wsk_left == 0)
{
wsk_temp->wsk_left = new node(d);
return;
}
else
wsk_temp = wsk_temp->wsk_left;
}
else
{
if(wsk_temp->wsk_right == 0)
{
wsk_temp->wsk_right = new node(d);
return;
}
else
wsk_temp = wsk_temp->wsk_right;
}
}
}
}
void display(node *wsk = 0)
{
if(wsk == 0) wsk = head;
if(wsk->wsk_left) display(wsk->wsk_left);
cout<<wsk->data<<"\n";
if(wsk->wsk_right) display(wsk->wsk_right);
}
};
int main ()
{
drzewo *a = new drzewo;
a->add(2);
a->add(5);
a->add(3.5);
a->add(8);
a->add(12);
a->add(0);
a->add(1);
a->display();
cout<<"\n\n";
system("pause");
};
Offline