Revision: 38433
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
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++