/ Published in: C++
Implementacija binarnoga stabla pretraživanja.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#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; }