Mam problem z implementacją drzewa. Nie potrafię sobie poradzić ze strukturą, może mnie ktoś nakierować co zrobić, żeby poniższy kod zadziałał?
#include<iostream>
#include<cstdlib>
using namespace std;
struct node
{
node * v;
node * l;
node * p;
node()
{
v=0;
l=NULL;
p=NULL;
}
} bst;
void dodaj(int *v, int *l, int *p, int &k, int &a, int x)
{
if(k == 0)
{
v[k] = x;
l[k] = -1;
p[k] = -1;
k++;
} else
{
if(x > v[a])
{
if(p[a]==-1)
{
v[k] = x;
p[a] = k;
l[k] = -1;
p[k] = -1;
k++;
}
else
dodaj(v, l, p, k, p[a], x);
}
else
{
if(l[a]==-1)
{
v[k] = x;
l[a] = k;
l[k] = -1;
p[k] = -1;
k++;
} else
dodaj(v, l, p, k, l[a], x);
}
}
}
void wyswietlanie(int *v, int *l, int *p, int k = 0){
if(l[k]>-1)
wyswietlanie(v, l, p, l[k]);
cout<<v[k];
if(p[k]>-1)
wyswietlanie(v, l, p, p[k]);
}
void znajdz(int *v, int *l, int *p, int x, int k = 0){
if(v[k]==x)
cout<<k<<endl;
else if(l[k] > -1 && x < v[k]){
znajdz(v, l, p, x, l[k]);
} else if(p[k] > -1){
znajdz(v, l, p, x, p[k]);
} else {
cout<<"Nie ma takiego klucza"<<endl;
}
}
int main(void)
{
node *root;
root=NULL;
system("Pause");
}