Return to Snippet

Revision: 68387
at January 15, 2015 08:31 by davbijeli


Initial Code
#include <iostream>
using namespace std;

struct telement{
	int broj;
	telement *lijevo,*desno;
};
void alokacija() {
	telement *b_stablo = new telement;
    b_stablo -> lijevo = NULL;
    b_stablo -> desno = NULL;
}
void dodaj_element_u_stablo (int broj){
	telement *b_stablo = new telement;
	telement *zadnji,*novi;
	int dalje = 1;
	zadnji = b_stablo;
	do{
		if(broj > zadnji->broj){
			if(zadnji->desno != NULL){
				zadnji = zadnji->desno;
			}
		else{
			novi = new telement;
			zadnji->desno = novi;
			novi->broj = broj;
			novi->lijevo = NULL;
			novi->desno = NULL;
			dalje = 0;
		}
		}
		else{//broj<=zadnji->broj
		     if(zadnji->lijevo != NULL){
		     	zadnji=zadnji->lijevo;
			 }
	    else{
	    	novi = new telement;
	    	zadnji->lijevo=novi;
	    	novi->broj=broj;
	    	novi->lijevo=NULL;
	    	novi->desno=NULL;
	    	dalje=0;
		}
		}
	}while (dalje==1);
}
void sort_uzlazno (){
	telement *b_stablo = new telement;
	static telement *korijen = b_stablo;
	if(b_stablo==NULL) return;
	sort_uzlazno();
	if(b_stablo != korijen) cout << b_stablo -> broj << ", ";
	sort_uzlazno();
}
void sort_silazno(){
	telement *b_stablo = new telement;
	static telement *korijen = b_stablo;
	if(b_stablo==NULL) return;
	sort_uzlazno();
	if(b_stablo != korijen) cout << b_stablo -> broj << ", ";
	sort_uzlazno();
}
telement *trazi(){
	int broj;
	telement *b_stablo = new telement;
	telement *tekuci = b_stablo;
	while (tekuci){
		if((tekuci->broj==broj)&&(tekuci!=b_stablo)) break;
		if(broj>tekuci->broj)
		     tekuci=tekuci->desno;
	    else
	        tekuci=tekuci->lijevo;
	}
	return tekuci;
}
void dealokacija(){
	telement *b_stablo = new telement;
	if(b_stablo->lijevo) dealokacija();
	if(b_stablo->desno) dealokacija();
	delete b_stablo;
	return;
}

Initial URL


Initial Description
Implementacija binarnoga stabla pretraživanja.

Initial Title
Binarno stablo pretraživanja

Initial Tags


Initial Language
C++