Return to Snippet

Revision: 38566
at January 6, 2011 02:01 by DamjanHrgar


Updated Code
struct telement{
int label, korijen;
telem *lijevo, *desno;
};
 
typedef struct telem *tcvor;
typedef struct telem *tstablo;
 
tcvor LeftChildB (tcvor cvor, tstablo stablo){
if (cvor->lijevo!= NULL)
return cvor->lijevo;
if (cvor->lijevo == NULL)
cout<<"Nema lijevog djeteta."<<endl;
};
 
tcvor RightChildB (tcvor cvor, tstablo stablo){
if (cvor->desno!= NULL)
return cvor->desno;
if (cvor->desno == NULL)
cout<<"Nema desnog djeteta."<<endl;
};   
 
tcvor ParentB (tcvor cvor, tstablo stablo){
tcvor rod;
 
if (LeftChildB(cvor, stablo)){
if (stablo->lijevo == cvor) return stablo->lijevo;
rod = ParentB (cvor, stablo->lijevo);
}
if (RightChildB(cvor, stablo)){
if (stablo->desno == cvor) return stablo->desno;
rod = ParentB(cvor, stablo->desno);
}   
return rod;
};
 
tcvor RootB (tstablo stablo){
if (stablo) return stablo;
else
cout<<"Greška!"<<endl;
};
 
int LabelB (tcvor cvor, tstablo stablo){
if(RootB (stablo)){
return cvor->label;
}
else
cout<<"Greška!"<<endl;
 
};
 
void ChangeLabelB (int label, tcvor cvor, tstablo stablo){
if (!RootB (stablo))
cout << "Taj cvor ne postoji." << endl;
else
stablo->label = label;
};
 
void CreateLeftB (int label, tcvor cvor, tstablo stablo){
tcvor novi = new telement;
if (LeftChildB(cvor, stablo)){ 
cout<<"Vec postoji."<<endl;
return;
}
else{
novi->label = label;
novi->lijevi = NULL;
novi->desni = NULL;
cvor->lijevi = novi;   
}
};
 
void CreateRightB (int label, tcvor cvor, tstablo stablo){
tcvor novi = new telement;
if (RightChildB(cvor, stablo)){
cout<<"Vec postoji."<<endl;
return;
}
else{
novi->label = label;
novi->lijevi = NULL;
novi->desni = NULL;
cvor->desni = novi;
}
}; 
 
void DeleteB (tcvor cvor, tstablo stablo){
if (LeftChildB (cvor, stablo)) DeleteB (cvor->lijevi, stablo);
if (RightChildB (cvor, stablo) ) DeleteB (cvor->desni, stablo);
delete cvor;
};     
 
void InitB (int korijen, tstablo stablo){
tcvor novi = new telem;
novi->korijen = korijen;
novi->lijevi = NULL;
novi->desni = NULL;
stablo = novi;
};

Revision: 38565
at January 5, 2011 04:27 by DamjanHrgar


Initial Code
struct telement{
int label, korijen;
telem *lijevo, *desno;
};
 
typedef struct telem *tcvor;
typedef struct telem *tstablo;
 
tcvor LeftChildB (tcvor cvor, tstablo stablo){
if (cvor->lijevo!= NULL)
return cvor->lijevo;
if (cvor->lijevo == NULL)
cout<<"Nema lijevog djeteta."<<endl;
};
 
tcvor RightChildB (tcvor cvor, tstablo stablo){
if (cvor->desno!= NULL)
return cvor->desno;
if (cvor->desno == NULL)
cout<<"Nema desnog djeteta."<<endl;
};   
 
tcvor ParentB (tcvor cvor, tstablo stablo){
tcvor rod;
 
if (LeftChildB(cvor, stablo)){
if (stablo->lijevo == cvor) return stablo->lijevo;
rod = ParentB (cvor, stablo->lijevo);
}
if (RightChildB(cvor, stablo)){
if (stablo->desno == cvor) return stablo->desno;
rod = ParentB(cvor, stablo->desno);
}   
return rod;
};
 
tcvor RootB (tstablo stablo){
if (stablo) return stablo;
else
cout<<"Greška!"<<endl;
};
 
int LabelB (tcvor cvor, tstablo stablo){
if(RootB (stablo)){
return cvor->label;
}
else
cout<<"Greška!"<<endl;
 
};
 
void ChangeLabelB (int label, tcvor cvor, tstablo stablo){
if (!RootB (stablo))
cout << "Taj cvor ne postoji." << endl;
else
stablo->label = label;
};
 
void CreateLeftB (int label, tcvor cvor, tstablo stablo){
tcvor novi = new telement;
if (LeftChildB(cvor, stablo)){ 
cout<<"Vec postoji."<<endl;
return;
}
else{
novi->label = label;
novi->lijevi = NULL;
novi->desni = NULL;
cvor->lijevi = novi;   
}
};
 
void CreateRightB (int label, tcvor cvor, tstablo stablo){
tcvor novi = new telement;
if (RightChildB(cvor, stablo)){
cout<<"Vec postoji."<<endl;
return;
}
else{
novi->label = label;
novi->lijevi = NULL;
novi->desni = NULL;
cvor->desni = novi;
}
}; 
 
void DeleteB (tcvor cvor, tstablo stablo){
if (LeftChildB (cvor, stablo)) DeleteB (cvor->lijevi, stablo);
if (RightChildB (cvor, stablo) ) DeleteB (cvor->desni, stablo);
delete cvor;
};     
 
void InitB (int korijen, tstablo stablo){
tcvor novi = new telem;
novi->korijen = root;
novi->lijevi = NULL;
novi->desni = NULL;
stablo = novi;
};

Initial URL


Initial Description


Initial Title
Binarno stablo_pokazivac

Initial Tags


Initial Language
C++