rendered paste bodyvoid medis::del(node1 * cur ,node1* parent ){ node1* tmp; node1* child; tmp = cur; if ((cur->right == NULL) && (cur->left == NULL)) // If element is leaf { if (parent->right == cur) parent->right = NULL; else parent->left = NULL; delete cur; } if (parent == NULL) // If element is root element of the tree { tmp = cur; tmp->right->left = tmp->left; delete cur; } parent = NULL; if ((cur->right->left && cur->left->right) || cur->right->left) // If exists right->left and left->right or only right->left of deleting element { parent = cur; cur = cur->right->left; while(cur->left) cur = cur->left; tmp->kaina = cur->kaina; tmp->preke = cur->preke; parent->left = NULL; delete cur; cur = NULL; } else if (cur->left->right) // If exists only left->right of deleting element { parent = cur; cur = cur->left->right; while(cur->right) cur = cur->right; tmp->kaina = cur->kaina; tmp->preke = cur->preke; parent->right = NULL; delete cur; cur = NULL; } if (!(cur->right->left && cur->left->right)) if((cur->right && cur->left) || cur->right) { parent = cur; cur = cur->right; child = cur; parent->kaina = cur->kaina; parent->preke = cur->preke; parent->right = child; cur->right = NULL; delete cur; } else if(cur->left) { parent = cur; cur = cur->left; child = cur; parent->kaina = cur->kaina; parent->preke = cur->preke; parent->left = child; cur->left = NULL; delete cur; }}