Revision: 65700
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 12, 2014 04:13 by mvracan
Initial Code
#include<iostream>
#include "opcenito stablo.h"
#include "binarno stablo pomocu pokazivaca.h"
#include "ophodenje stabla.h"
#include "binarno stablo pomocu polja.h"
using namespace std;
void opcenito(){
int k,r,m,n,l,b,u,izbor,cvor;
char vrijed;
cout << "Unesite vrijednost korijena: ";
cin >> k;
tree *T = InitT(k,T);
cout << "Unesite prvo dijete: ";
cin >> r;
CreateT(r,k,T);
cout << "Unesite brata: ";
cin >> m;
CreateT(m,k,T);
cout << "Unesite unuka (dijete prvog djeteta): ";
cin >> l;
CreateT(l,r,T);
cout << "Unesite drugog unuka (dijete drugog djeteta): ";
cin >> b;
CreateT(b,m,T);
do{
system("cls");
cout << "Zelite li: " << endl << "1. Vratiti vrijednost" << endl << "2. Promijeniti vrijednost cvora"
<< endl << "3. Obrisati cvor" << endl << "4. Ophodenje stabla" << endl << "9. Vratiti se na glavni menu" << endl;
cin >> izbor;
system("cls");
switch(izbor){
case 1:
cout << "Vratiti vrijednost: " << endl << "1. korijena" << endl << "2. oznaku" << endl
<< "3. prvo dijete" << endl << "4. brata" << endl << "5. roditelja" << endl;
cin >> n;
if(n!=1){
cout << "Unesite cvor: "; cin >> cvor;
}
switch(n){
case 1: cout << RootT(T) << endl; break;
case 2: cout << LabelT(cvor,T) << endl; break;
case 3: cout << FirstChildT(cvor,T) << endl; break;
case 4: cout << NextSiblingT(cvor,T) << endl; break;
case 5: cout << ParentT(cvor,T) << endl; break;
}
system("pause");
break;
case 2:
cout << "Unesite cvor: "; cin >> cvor;
cout << "Unesite novu vrijednost: "; cin >> vrijed;
ChangeLabelT(vrijed,cvor,T);
system("pause");
break;
case 3:
cout << "Unesite cvor: "; cin >> cvor;
T = DeleteT(cvor,T);
system("pause");
break;
case 4:
cout << "Zelite li: " << endl << "1. PreOrder" << endl << "2. InOrder" << endl << "3. PostOrder" << endl;
cin >> izbor;
switch(izbor){
case 1: PreOrder(T); cout << endl; system("pause"); break;
case 2: InOrder(T); cout << endl; system("pause"); break;
case 3: PostOrder(T); cout << endl; system("pause"); break;
}
T->root=k;
break;
}
}while(izbor!=9);
}
void binarno(){
int izbor,k,n,l,cvor,oznaka;
cout << "Pomocu: " << endl << "1. Polja" << endl << "2. Pokazivaca" << endl;
cin >> izbor;
if(izbor==1){
cout << "Unesite korijen: ";
cin >> k;
atree *T = aInitB(k,T);
cout << "Unesite lijevo dijete korijenu: ";
cin >> k;
aCreateLeftB(k,aRootB(T),T);
cout << "Unesite desno dijete korijenu: ";
cin >> k;
aCreateRightB(k,aRootB(T),T);
cout << "Unesite lijevo dijete desnom dijetetu: ";
cin >> n;
aCreateLeftB(l,k,T);
do{
system("cls");
cout << "Zelite li: " << endl << "1. Vratiti poziciju" << endl << "2. Ispisati oznaku" << endl << "3. Promijeniti oznaku"
<< endl << "4. Obrisati cvor" << endl << "9. Vratiti se na glavni menu" << endl;
cin >> n;
if(n==4) cout << "Unesite cvor: ";
else if(n==9) break;
else cout << "Unesite poziciju: ";
cin >> cvor;
switch(n){
case 1:
cout << "1. Roditelja cvora" << endl << "2. Lijevog djeteta cvora" << endl << "3. Desno djeteta cvora" << endl;
cin >> n;
switch(n){
case 1: cout << aParentB(cvor,T) << endl; break;
case 2: cout << aLeftChildB(cvor,T)<< endl; break;
case 3: cout << aRightChildB(cvor,T) << endl; break;
}
system("pause");
break;
case 2:
cout << aLabelB(cvor,T) << endl;
system("pause");
break;
case 3:
cout << "Unesite novu oznaku: "; cin >> oznaka;
aChangeLabelB(oznaka,cvor,T);
system("pause");
break;
case 4:
aDeleteB(cvor,T);
system("pause");
break;
}
}while(n!=9);
}
else{
cout << "Unesite korijen: ";
cin >> k;
pnode *T = InitB(k,T);
cout << "Unesite lijevo dijete korijena: ";
cin >> k;
CreateLeftB(k,RootB(T));
cout << "Unesite desno dijete korijena: ";
cin >> k;
CreateRightB(k,RootB(T));
cout << "Unesite lijevo dijete desnom dijetetu: ";
cin >> k;
CreateLeftB(k,RightChildB(RootB(T)));
do{
system("cls");
cout << "Zelite li" << endl << "1. Vratiti oznaku" << endl << "2. Promijeniti oznaku korijenu"
<< endl << "3. Obrisati stablo" << endl << "9. Vratiti se na glavni menu" << endl;
cin >> izbor;
switch(izbor){
case 1:
if(T==NULL){
cout << "Nema stabla vise!" << endl;
system("pause");
break;
}
cout << "Korijen: " << LabelB(RootB(T)) << endl << "Desno dijete korijena: " << LabelB(RightChildB(RootB(T)))
<< endl << "Lijevo dijete korijena: " << LabelB(LeftChildB(RootB(T))) << endl
<< "Lijevo dijete desnog djeteta: " << LabelB(LeftChildB(RightChildB(RootB(T)))) << endl;
system("pause");
break;
case 2:
cout << "Unesite novu oznaku: "; cin >> oznaka;
ChangeLabelB(oznaka,RootB(T));
system("pause");
break;
case 3:
DeleteB(RootB(T),RootB(T));
T=NULL;
system("pause");
break;
}
}while(izbor!=9);
}
}
int main(){
int n;
do{
cout << "Zelite li (1) opcenito ili (2) binarno stablo? ";
cin >> n;
switch(n){
case 1: opcenito(); break;
case 2: binarno(); break;
}
}while(n!=9);
return 0;
}
Initial URL
Initial Description
demonstracija
Initial Title
demonstrativni program.cpp
Initial Tags
Initial Language
C++