Problem ze strukturą drzewa binarnego (dodawanie, wyświetlanie)

0

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");
}
0

Watpie, zeby ktos chcial sie babrac w tej "kupie"...
http://edu.i-lo.tarnow.pl/inf/utils/002_roz/ol015.php

1 użytkowników online, w tym zalogowanych: 0, gości: 1