/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
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; }