/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
struct element { int label; element *left,*right; }; typedef element *node; typedef element bt; node ParentB(node n, bt* T) { if (n == T) return NULL; node roditelj = NULL; if (T->left) { if (T->left == n) return T; else roditelj = ParentB(n, T->left); } if(T->right) { if (T->right == n) return T; else roditelj = ParentB(n, T->right); } return roditelj; } node LeftChildB(node n, bt* T) { if(!n || !n->left) return NULL; return n->left; } node RightChildB(node n, bt* T) { if(!n || !n->right) return NULL; return n->right; } int LabelB(node n, bt* T) { return n->label; } void ChangeLabelB(int x, node n, bt* T) { if(!n) return; n->label = x; } node RootB(bt* T) { if(!T) return NULL; return T; } void CreateLeftB(int x, node n, bt* T) { if(n->left) { cout << "Greska" << endl << endl; return; } node novi = new element; n->left = novi; novi->label = x; novi->left = NULL; novi->right = NULL; } void CreateRightB(int x, node n, bt* T) { if(n->right) { cout << "Greska" << endl << endl; return; } node novi = new element; n->right = novi; novi->label = x; novi->left = NULL; novi->right = NULL; } void DeleteB(node n, bt* T) { static bool jednom = false; if(!jednom) { node roditelj = ParentB(n, T); if(roditelj->left == n) roditelj->left = NULL; else roditelj->right = NULL; jednom = true; } if(n->left) DeleteB(n->left, T); if(n->right) DeleteB(n->right, T); delete n; } bt* InitB(int x, bt* T) { T = new element; T->label = x; T->left = NULL; T->right = NULL; return T; }