/ Published in: C++
glavni program
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <iostream> #include <cstring> //ovo izmjeniti u ovisnosti koju implementaciju zelimo /* 1. Opce stablo 2. Binarno stablo s pokazivacima 3. Binarno stablo uz pomoc polja */ #define vrsta 3 #if vrsta==1 #include "tree.h" #elif vrsta==2 #include "btree.h" #else #include "btree_pointers.h" #endif using namespace std; /*void izbornik(){ cout<<"-----Izbornik----\n"; cout<<"1. Koristi opcenito stablo\n"; cout<<"2. Koristi binarno stablo s pokazivacima\n"; cout<<"3. Koristi binarno stablo uz pomoc polja\n"; cout<<"9. Izlaz iz programa\n"; cout<<"Vas izbor: "; } */ #if vrsta==1 void opcenitoStablo(){ tree *stablo=new tree; InitT(1,stablo); cout<<"Cvor 2:\n"; CreateT(2,1,stablo); cout<<"Cvor 3: \n"; CreateT(3,2, stablo); cout<<"Cvor 4: \n"; CreateT(4,2, stablo); cout<<"Cvor 5: \n"; CreateT(5,2, stablo); LabelT(2,stablo); LabelT(3,stablo); LabelT(4,stablo); LabelT(5,stablo); cout<<"Firstchild od 2: "<<FirstChildT(2,stablo)<<endl; cout<<"Parent od 3: "<<ParentT(3,stablo)<<endl; cout<<"Brat od 3: "<<NextSiblingT(3,stablo)<<endl; cout<<"Mijenjam oznaku na cvoru 3 u vrijednost ""test""\n"; ChangeLabelT("test",3,stablo); LabelT(3,stablo); DeleteT(2,stablo); delete stablo; } #elif vrsta==2 void binarnoPolje(){ btree *stablo =new btree; InitB("korijen",stablo); CreateLeftB("lijevo dijete 1",1,stablo); CreateRightB("desno dijete 1",1,stablo); CreateLeftB("Lijevo dijete 2",2,stablo); cout<<"Korijen se nalazi na: "<<RootB(stablo)<<endl; LabelB(1,stablo); LabelB(2,stablo); LabelB(3,stablo); LabelB(4,stablo); cout<<"Mijenjam vrijednost cvora 4 u vrijednost ""test""\n"; ChangeLabelB("test",4,stablo); LabelB(4,stablo); cout<<"Roditelj od cvora 4 je: "<<Parent(4,stablo)<<endl; cout<<"Brisanje cvora 2...\n"; DeleteB(2,stablo); delete stablo; } #else void binarnoPokazivac(){ btree *stablo = new btree; InitB("Korijen",stablo); CreateLeftB(stablo,RootB(stablo),"lijevo dijete 1"); CreateRightB(stablo,RootB(stablo),"desno dijete 1"); CreateLeftB(stablo,LeftChildB(stablo,RootB(stablo)),"Lijevo dijete 2"); cout<<"Lijevo dijete korijena sadrzi: "<<endl; LabelB(stablo,LeftChildB(stablo,RootB(stablo))); cout<<"Desno dijete korijena sadrzi: "<<endl; LabelB(stablo,RightChildB(stablo,RootB(stablo))); cout<<"Dijete od lijevog djeteta korijena sadrzi:\n"; LabelB(stablo,LeftChildB(stablo,LeftChildB(stablo,RootB(stablo)))); cout<<"Greska stvaranja vec postojeceg djeteta\n"; CreateLeftB(stablo,RootB(stablo),"lijevo dijete 1"); cout<<"Mijenjanje vrijednosti u lijevog djeteta u ""TEST""\n"; ChangeLabelB("TEST",LeftChildB(stablo,RootB(stablo)),stablo); cout<<"Brisanje lijevog djeteta i njegovih clanova..\n"; DeleteB(stablo,LeftChildB(stablo,RootB(stablo))); cout<<"Brisanje desnog djeteta i njegovih clanova..\n"; DeleteB(stablo,RightChildB(stablo,RootB(stablo))); delete stablo; } #endif int main(){ //izbornik(); cout<<"Pocetak programa....\n"; #if vrsta==1 cout<<"Odabrana je implementacija opceg stabla...\n"; system("pause"); opcenitoStablo(); #elif vrsta==2 cout<<"Odabrana je implementacija binarnog stabla i pokazivaca..\n"; system("pause"); binarnoPolje(); #else cout<<"Odabrana je implementacija binarnog stabla i polja..\n"; system("pause"); binarnoPokazivac(); #endif cout<<"\n\n---------Kraj programa--------------\n"; system("pause"); return 0; }