Funkcja wyszukująca najmniejszą wartość w drzewie binarnym

0
 
struct lisc{
	lisc* lewy;
	lisc* prawy;
	int wartosc;
};
int najmniejsza = 999;
void przeszukaj(lisc* korzen);


int main()
{
	lisc *a = new lisc;
	lisc *b = new lisc;
	lisc *c = new lisc;
	lisc *d = new lisc;
	lisc *e = new lisc;
	lisc *f = new lisc;
	lisc *g = new lisc;
	a->lewy = b;
	a->prawy = c;
	b->lewy = d;
		b->prawy = e;
		c->lewy = f;
		c->prawy = g;
		a->wartosc = 5;
		b->wartosc = 5;
		c->wartosc = 1;
		d->wartosc = 0;
		e->wartosc = 5;
		f->wartosc = 2;
		g->wartosc = 10;
		przeszukaj(a);
	_getch();
	delete a, b, c, d, e, f, g;
	return 0;
}

void przeszukaj(lisc* korzen)
{

	if ((korzen->wartosc) < najmniejsza) { najmniejsza = korzen->wartosc; }

	if (korzen->lewy) { przeszukaj(korzen->lewy); }
	if (korzen->prawy) { przeszukaj(korzen->prawy); }

	cout << najmniejsza << endl;
}

Funkcja miała wyszukiwać najmniejsza wartość w drzewie binarnym (nie chciało mi się osobnej struktury tworzyć dla drzewa więc jest jak widać w main), lecz program się wysypuje może mi ktoś powiedzieć co jest nie tak

0

Dobra, ledwie wrzuciłem post i natychmiastowe olśnienie brakowało

lisc()
{
    lewy = NULL;
    prawy = NULL;
}

Przepraszam za nie potrzebny spam

dodanie znacznika <code class="cpp"> - fp

0
struct lisc
  {
   lisc *lewy,*prawy;
    int wartosc;
    lisc(int wartosc=0,lisc *lewy=0,lisc *prawy=0):lewy(lewy),prawy(prawy),wartosc(wartosc)
      {
      }
   ~lisc()
      {
       delete lewy;
       delete prawy; 
      }
  };

...
    lisc *a = new lisc(5,new lisc(5,new lisc(0),new lisc(5)),new lisc(1,new lisc(2),new lisc(10)));
    przeszukaj(a);
    delete a;

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