Revision: 38500
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 4, 2011 08:11 by nihorvati1
Initial Code
struct tcvor {
int oznaka;
bool koristen;
};
struct tstablo {
struct tcvor polje[10000];
};
int ParentB (int i, tstablo *stablo){
if (i == 1) return -1;
if (stablo->polje[i].koristen){
if (stablo->polje[i*2].koristen || stablo->polje[i*2+1].koristen)
return i/2;
}
};
int LeftChildB (int i, tstablo *stablo){
if (stablo->polje[i*2].koristen) return i*2;
if (!stablo->polje[i*2].koristen) return -1;
};
int RightChildB (int i, tstablo *stablo){
if (stablo->polje[i*2+1].koristen) return i*2+1;
if (!stablo->polje[i*2+1].koristen)return -1;
};
int LabelB (int i, tstablo *stablo){
if (stablo->polje[i].koristen && stablo->polje[i].oznaka >= 0)
return stablo->polje[i].oznaka;
if (!stablo->polje[i].koristen)
return 0;
};
void ChangeLabelB (int oznaka, int i, tstablo *stablo){
if (oznaka%2 == 0){
if (stablo->polje[i*2].koristen)
stablo->polje[i*2].oznaka = oznaka;
}
else {
if (stablo->polje[i*2+1].koristen)
stablo->polje[i*2+1].oznaka = oznaka;
}
};
int RootB (tstablo *stablo){
if (stablo->polje[1]) return 1;
else return -1;
};
void CreateLeftB (int oznaka, int i, tstablo *stablo){
if (LeftChildB (i,stablo) == -1 || (!stablo->polje[i*2].koristen)){
stablo->polje[i*2].oznaka = oznaka;
stablo->polje[i*2].koristen = true;
};
void CreateRightB (int oznaka, int i, tstablo *stablo){
if (RightChildB (i,stablo) == -1 || (!stablo->polje[i*2+1].koristen)){
stablo->polje[i*2+1].oznaka = oznaka;
stablo->polje[i*2+1].koristen = true;
}
};
void DeleteB (int i, tstablo *stablo){
if (stablo->polje[i*2].koristen){
DeleteB (polje[i*2], stablo);
stablo->polje[i*2].koristen = false;
}
if (stablo->polje[i*2+1].koristen){
DeleteB (polje[i*2+1], stablo);
stablo->polje[i*2+1].koristen = false;
}
if (stablo->polje[1].koristen){
DeleteB(polje[1],stablo);
stablo->polje[1].koristen = false;
}
};
void InitB (int korijen, tstablo *stablo){
do{
DeleteB (polje[i*2], stablo);
DeleteB (polje[i*2+1], stablo);
}while (i != 1);
stablo->polje[1].oznaka = korijen;
stablo->polje[1].koristen = true;
};
Initial URL
Initial Description
Initial Title
implementacija binarnog stabla pomoću polja
Initial Tags
Initial Language
C++