Return to Snippet

Revision: 38446
at January 3, 2011 09:33 by originx


Initial Code
#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;   
}

Initial URL


Initial Description
glavni program

Initial Title
Strukture stabla

Initial Tags


Initial Language
C++