Revision: 38433
at January 3, 2011 02:08 by ivahorvat

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

Initial URL

Initial Description

Initial Title
`bstablo_polje.h`

Initial Tags
`podataka`

Initial Language
`C++`