# Posted By

ivahorvat on 01/03/11

# Statistics

Viewed 326 times
Favorited by 0 user(s)

# bstablo_polje.h

/ Published in: C++
`struct el {       int oz;       int kor;}; struct z {       el elementi[5000];}; typedef int cvor; cvor ParentB(cvor br, z* I) {     if(br == 1) return 0;     if(br%2) br--;     return br/2;} cvor LeftChildB(cvor br, z* I) {     if(I->elementi[br].kor == 0)            return 0;     if(I->elementi[2*br].kor == 1)            return 2*br;     else return 0;} cvor RightChildB(cvor br, z* I) {     if(I->elementi[br].kor == 0) return 0;     if(I->elementi[2*br+1].kor == 1) return 2*br+1;     else return 0;} int LabelB(cvor br, z* I) {          return I->elementi[br].oz;}  void ChangeLabelB(int v, cvor br, z* I) {     if(I->elementi[br].kor == 0) return;     I->elementi[br].oz = v;} cvor RootB(z* I) {     if(I->elementi[1].kor == 0) return 0;     return 1;} void CreateLeftB(int v, cvor br, z* I) {     if(I->elementi[br].kor == 0 || I->elementi[2*br].kor == 1) {           cout << "Doslo je do pogreske!!" << endl << endl;           return;     }     I->elementi[2*br].kor = 1;     I->elementi[2*br].oz = v;} void CreateRightB(int v, cvor br, z* I) {        if(I->elementi[br].kor == 0 || I->elementi[2*br+1].kor == 1)        {        cout << "Doslo je do pogreske!!" << endl << endl;        return;    }    I->elementi[2*br+1].kor = 1;    I->elementi[2*br+1].oz = v;} void DeleteB(cvor br, z* I) {    I->elementi[br].kor = 0;        if (LeftChildB(br, I)) DeleteB(LeftChildB(br, I), I);        if (RightChildB(br, I)) DeleteB(RightChildB(br, I), I);} z* InitB(int v, z* I) {    if(I) delete I;    I = new z;    for(int i = 0; i < 5000; i++)        I->elementi[i].kor = 0;    I->elementi[1].oz = v;    I->elementi[1].kor = 1;     return I;}`