Drzewo binarne:
#include <iostream>
#include <stdio.h>
using namespace std;
struct Wezel {
Wezel *lewy;
Wezel *prawy;
int wartosc;
};
bool relacja(int w1,int w2)
{
return w1<w2;
}
Wezel *utworz_lisc(int wartosc){
Wezel *w=new Wezel;
w->wartosc=wartosc;
w->lewy=0;
w->prawy=0;
}
void wypisz (int poziom, Wezel *drzewo){
for (int i=1; i<poziom;i++){
cout<<" ";
}
cout<<drzewo->wartosc<<endl;
}
void wypisz_drzewo(int poziom, Wezel *drzewo){
if (drzewo){
wypisz(poziom, drzewo);
wypisz_drzewo(poziom+1,drzewo->lewy);
wypisz_drzewo(poziom+1,drzewo->prawy);
}
}
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
Wezel *w1=utworz_lisc(10);
w1->lewy=utworz_lisc(8);
w1->prawy=utworz_lisc(9);
w1->lewy->lewy=utworz_lisc(4);
w1->lewy->prawy=utworz_lisc(5);
w1->prawy->lewy=utworz_lisc(6);
w1->prawy->prawy=utworz_lisc(7);
wypisz_drzewo(0,w1);
system("Pause");
return 0;
}
Dopisać funkcję rekurencyjną, która dodaje liść z określoną zależnością, tj. wartość liścia musi być mniejsza od wartości
poprzednika.