/ Published in: C++
                    
                                        
                            
                                Expand |
                                Embed | Plain Text
                            
                        
                        Copy this code and paste it in your HTML
#ifndef BSTABLO_POKAZIVAC_H
#ifndef BSTABLO_POLJE_H
#define BSTABLO_POLJE_H
struct element{
labeltype label;
int used;
};
struct bt{
struct element elements[M_ELE];
};
typedef struct bt *btree;
typedef int node;
btree InitB(labeltype x,btree T){
T = new bt;
T->elements[1].label = x;
T->elements[1].used = 1;
return T;
}
node ParentB(node n,btree T){
if(T==NULL) return 0;
if(n<2) return LAMBD;
return n/2;
}
node LeftChildB(node n,btree T){
if(T->elements[2*n].used == NISTA) return LAMBD;
return 2*n;
}
node RightChildB(node n,btree T){
if(T->elements[2*n+1].used == NISTA) return LAMBD;
return 2*n+1;
}
labeltype LabelB(node n,btree T){
if(T==NULL) return 0;
if(T->elements[n].used == NISTA) return LAMBD;
return T->elements[n].label;
}
void ChangeLabelB(labeltype x,node n,btree T){
T->elements[n].label = x;
}
node RootB(btree T){
if(T==NULL) return 0;
if(T->elements[1].used == NISTA) return LAMBD;
return 1;
}
int CreateLeftB(labeltype x,node n,btree T){
if(T->elements[2*n].used == PUNO) return POGRESKA;
T->elements[2*n].used = PUNO;
T->elements[2*n].label = x;
return 0;
}
int CreateRightB(labeltype x,node n,btree T){
if(T->elements[2*n+1].used == PUNO) return POGRESKA;
T->elements[2*n+1].used = PUNO;
T->elements[2*n+1].label = x;
return 0;
}
bool ExistsLeftChildB(node n,btree T){
if(T==NULL) return LAMBD;
if(T->elements[n*2].used == PUNO) return true;
return false;
}
bool ExistsRightChildB(node n,btree T){
if(T==NULL) return LAMBD;
if(T->elements[n*2+1].used == PUNO) return true;
return false;
}
void DeleteB(node n,btree T){
if(ExistsLeftChildB(n,T)){
DeleteB(LeftChildB(n,T),T);
}
if(ExistsRightChildB(n,T)){
DeleteB(RightChildB(n,T),T);
}
T->elements[n].used = NISTA;
}
#endif /*BSTABLO_POLJE_H*/
#endif /*BSTABLO_POKAZIVAC_H*/
Comments
 Subscribe to comments
                    Subscribe to comments
                
                