node1* medis::del(node1 * cur) { node1* temp; node1* parent; if ((cur->right == NULL) && (cur->left == NULL)) { delete cur; } else { temp = cur ; while(cur) { if ((cur->right != NULL) && (cur->left == NULL)) { parent = cur; cur = cur->right; return parent; } if ((cur->right == NULL) && (cur->left != NULL)) { parent = cur; cur = cur->left; return parent; } if ((cur->right != NULL) && (cur->left != NULL)) { parent = cur; cur = cur->right; return parent; } if ((cur->right == NULL) && (cur->left == NULL)) { parent->right = NULL; parent->left = NULL; memcpy (temp,cur,sizeof (*temp)) ; delete cur; } } } }