Return to Snippet

Revision: 68484
at January 19, 2015 05:20 by ivan_uzarevic


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

Revision: 68483
at January 19, 2015 05:18 by ivan_uzarevic


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

Initial URL


Initial Description
Glavni program koji služi za izvedbu binarnoga stabla te rad sa funkcijama binarnoga stabla.

Initial Title
bstablo_glavni.cpp

Initial Tags
data, array, c++

Initial Language
C++