Return to Snippet

Revision: 65700
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++