/ Published in: C++
Glavni program koji služi za izvedbu binarnoga stabla te rad sa funkcijama binarnoga stabla.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <iostream> #include <cstdlib> #include <conio.h> #include "bstablo_polje.h" //#include "bstablo_pokazivaci.h" using namespace std; void ispis (vrijed i) { cout << (size_t)i << " ***** " << labelB(i,stablo) << " ***** " << labelB(parentB(i,stablo),stablo) << "***** " << labelB(leftchildB(i,stablo),stablo) << " ***** " << labelB(rightchildB(i,stablo),stablo) << endl; } void tablica2 (vrijed tekuci, bstablo *stablo) { vrijed lijevi, desni; ispis(tekuci); lijevi = leftchildB(tekuci,stablo); desni = rightchildB(tekuci,stablo); if (lijevi != 0) { tekuci = lijevi; tablica2(tekuci,stablo); } if (desni != 0) { tekuci = desni; tablica2(tekuci,stablo); } } int main() { int unos, izbor; int poz; vrijed dijete; cout << "INICIJALIZIRAM BINARNO STABLO..." << endl; cout << "Unesite labelu (poz.cijeli broj) korijena: "; cin >> unos; initB (unos, stablo); cout << "Binarno stablo inicijalizirano!!!" << endl; cout << "ENTER ZA NASTAVAK" << endl; getch(); system("cls"); cout << "AUTOMATSKI UNOS 4 CVORA BINARNOGA STABLA" << endl; cout << "Unesite pozitivni cijeli broj(labela): "; cin >> unos; createleftB (unos, rootB (stablo), stablo); cout << "Unesite pozitivni cijeli broj(labela): "; cin >> unos; createrightB (unos, rootB (stablo), stablo); cout << "Unesite pozitivni cijeli broj(labela): "; cin >> unos; dijete = leftchildB (rootB(stablo),stablo); createleftB (unos, dijete, stablo); cout << "Unesite pozitivni cijeli broj(labela): "; cin >> unos; createrightB (unos, dijete, stablo); cout << endl << endl; tablica2 (rootB (stablo),stablo); cout << endl; cout << "ENTER ZA NASTAVAK" << endl; getch(); do { system("cls"); cout << "**********DODATNI IZBORNIK**********" << endl; cout << "1. Roditelj cvora" << endl; cout << "2. Lijevo dijete cvora" << endl; cout << "3. Desno dijete cvora" << endl; cout << "4. Promjena oznake cvora" << endl; cout << "5. Korijen binarnoga stabla" << endl; cout << "6. Kreiranje lijevog djetete cvora" << endl; cout << "7. Kreiranje desnog dijeteta cvora" << endl; cout << "8. Brisanje cvora sa svim potomcima" << endl; cout << "9. Izlaz iz programa" << endl; cout << "*************************************" << endl; cout << "Unesite mogucnost: "; cin >> izbor; switch (izbor) { case 1: tablica2 (rootB (stablo),stablo); cout << endl; cout << "Unesite poziciju cvora" << endl; cin >> poz; cout << "Roditelj cvora je cvor sa labelom " << labelB (parentB((vrijed)poz,stablo),stablo) << endl; cout << "ENTER ZA NASTAVAK" << endl; getch(); break; case 2: tablica2 (rootB (stablo),stablo); cout << endl; cout << "Unesite poziciju cvora" << endl; cin >> poz; cout << "Lijevo dijete cvora je cvor sa labelom " << labelB (leftchildB((vrijed)poz,stablo),stablo) << endl; cout << "ENTER ZA NASTAVAK" << endl; getch(); break; case 3: tablica2 (rootB (stablo),stablo); cout << endl; cout << "Unesite poziciju cvora" << endl; cin >> poz; cout << "Desno dijete cvora je cvor sa labelom " << labelB (rightchildB((vrijed)poz,stablo),stablo) << endl; cout << "ENTER ZA NASTAVAK" << endl; getch(); break; case 4: tablica2 (rootB (stablo),stablo); cout << endl; cout << "Unesite poziciju cvora" << endl; cin >> poz; cout << "Unesite novu labelu cvora(poz.cijeli broj): " << endl; cin >> unos; changelabelB (unos,(vrijed)poz,stablo); cout << "Novi cvor ima vrijednost " << labelB ((vrijed)poz,stablo) << endl; cout << "ENTER ZA NASTAVAK" << endl; getch(); break; case 5: tablica2 (rootB (stablo),stablo); cout << endl; cout << "Korijen binarnoga stabla je cvor sa labelom " << labelB (rootB(stablo),stablo) << endl; cout << "ENTER ZA NASTAVAK" << endl; getch(); break; case 6: tablica2 (rootB (stablo),stablo); cout << endl; cout << "Unesite poziciju cvora" << endl; cin >> poz; cout << "Unesite labelu(vrijednost) cvora: "; cin >> unos; createleftB(unos,(vrijed)poz,stablo); ispis((vrijed)poz); cout << "ENTER ZA NASTAVAK" << endl; getch(); break; case 7: tablica2 (rootB (stablo),stablo); cout << endl; cout << "Unesite poziciju cvora" << endl; cin >> poz; cout << "Unesite labelu(vrijednost) cvora: "; cin >> unos; createrightB(unos,(vrijed)poz,stablo); ispis((vrijed)poz); cout << "ENTER ZA NASTAVAK" << endl; getch(); break; case 8: tablica2 (rootB (stablo),stablo); cout << endl; cout << "Unesite poziciju cvora" << endl; cin >> poz; deleteB ((vrijed)poz, stablo); cout << "ENTER ZA NASTAVAK" << endl; getch(); break; } } while (izbor != 9); return 0; }