/ Published in: C++
demonstracija
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#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; }