/ Published in: C++
test
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include<iostream> using namespace std; struct st_ELEM{ int label; st_ELEM *lijevo,*desno; }; st_ELEM *INIT_B(int n,st_ELEM *T){ T = new st_ELEM; T->lijevo = T->desno = NULL; T->label = n; return T; } st_ELEM *ROOT_B(st_ELEM *T){ return T; } void CHANGE_LABEL_B(int x,st_ELEM *T){ T->label = x; } st_ELEM *PARENT_B(int n,st_ELEM *T){ if(T->label==n) return NULL; if(T->lijevo){ if(T->lijevo->label==n) return T; PARENT_B(n,T->lijevo); } if(T->desno){ if(T->desno->label==n) return T; PARENT_B(n,T->desno); } } st_ELEM *LEFT_CHILD_B(st_ELEM *T){ return T->lijevo; } st_ELEM *RIGHT_CHILD_B(st_ELEM *T){ return T->desno; } int LABEL_B(st_ELEM *T){ return T->label; } void CREATE_LEFT_B(int x, st_ELEM *T){ if(T->lijevo) cout << "Vec postoji!" << endl; else{ st_ELEM *novi = new st_ELEM; novi->label = x; novi->lijevo = NULL; novi->desno = NULL; T->lijevo = novi; } } void CREATE_RIGHT_B(int x,st_ELEM *T){ if(T->desno) cout << "Vec postoji!" << endl; else{ st_ELEM *novi = new st_ELEM; novi->label = x; novi->lijevo = NULL; novi->desno = NULL; T->desno = novi; } } void DELETE_B(st_ELEM *P,st_ELEM *T){ st_ELEM *erase = P,*roditelj = PARENT_B(P->label,T); if(roditelj->lijevo==P) roditelj->lijevo = NULL; else roditelj->desno = NULL; if(P->lijevo) DELETE_B(P->lijevo,T); if(P->desno) DELETE_B(P->desno,T); delete erase; }