Revision: 68423
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 18, 2015 06:46 by igotepava
Initial Code
struct element{
int label, used;
};
struct tree{
element elements[10000];
};
tree *InitB(int x, tree *T){
T = new tree;
for(int i=0; i<10000; i++){
T->elements[i].used = 0;
T->elements[i].label = -1;
}
T->elements[1].label = x;
T->elements[1].used = 1;
return T;
}
int RootB(tree *T){
return T->elements[1].label;
}
int ParentB(int n, tree *T){
if(T->elements[1].label == n) return -1;
if(n%2) return n/2+1;
else return n/2;
}
int LeftChildB(int n, tree *T){
if(!(T->elements[n*2].used)) return -1;
else return T->elements[n*2].label;
}
int RightChildB(int n, tree *T){
if(!(T->elements[n*2+1].used)) return -1;
else return n*2+1;
}
int LabelB(int n, tree *T){
return T->elements[n].label;
}
void ChangeLabelB(int x, int n, tree *T){
T->elements[n].label = x;
}
void CreateLeftB(int x, int n, tree *T){
if(T->elements[n*2].used) cout << "Mjesto je zauzeto!\n";
else{
T->elements[n*2].used = 1;
T->elements[n*2].label = x;
}
}
void CreateRightB(int x, int n, tree *T){
if(T->elements[n*2+1].used) cout << "Mjesto je zauzeto!\n";
else{
T->elements[n*2+1].used = 1;
T->elements[n*2+1].label = x;
}
}
void DeleteB(int n, tree *T){
if(LeftChildB(n, T) != -1) DeleteB(LeftChildB(n, T), T);
if(RightChildB(n, T) != -1) DeleteB(RightChildB(n, T), T);
T->elements[n].label = -1;
T->elements[n].used = 0;
}
Initial URL
Initial Description
Implementacija binarnog stabla pomoću polja.
Initial Title
binarno_stablo_polje.h
Initial Tags
data, array
Initial Language
C++