#include struct element { int vrijednost; struct elem *L,*D; }; typedef struct elem *cv; typedef struct elem *bs; void InitI(int v, bs I){ cv novi; novi= new elem; novi->v=v; novi->L=NULL; novi->D=NULL; I=novi; };//InitI cv LeftChildI(cv C, bs I){ return C->L; };//LeftChild cv RightChildI(cv C, bs I){ return C->D; };//RightChild cv ParentI(cv C, bs I){ if(C==I) return NULL; cv r; if(I->L!=NULL){ if(I->L==C) return I->L; r=ParentB(C,I->L); } if(I->D!=NULL){ if(I->D==C) return I->D; r=ParentI(C,I->D); } return r; };//ParentI void CreateLeftI(int v, cv C, bs I){ cv novi; novi = new elem; if(LeftChildI(C, I)) cout<<"Cvor ima lijevo dijete."<v=v; novi->L=NULL; novi->D= NULL; C->L=novi; } };//CreateLeftI void CreateRightI(int v, cv C, bs I){ cv novi; novi= new elem; if(RightChildI(C, I)) cout<<"Cvor ima desno dijete."<v=v; novi->L=NULL; novi->D=NULL; C->D=novi; } };//CreateRightI int LabelI(cv C, bs I){ if(C==NULL){ cout<<"Cvor ne postoji."<v; };//LabelI void ChangeLabelI(int v, cv C, bs I){ if(C==NULL) cout<<"Cvor ne postoji."<v=v; } };//ChangeLabelI void DeleteI(cv C, bs I){ if (C->L != NULL) DeleteI(C->L, I); if (C->D != NULL) DeleteI(C->D, I); delete C; };//DeleteI //takoder je slican ostalima, jer se nema tu puno sto za mijenjati, jedino sto koristim drugacije oznake i drugaciji redoslijed