Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void del(int number){
- tree_struct *poi=find(number);
- if(poi->left==NULL && poi->right==NULL){//dziala
- if(poi==top){
- delete top;
- top=NULL;
- }
- else{
- tree_struct *father_poi=find_father(number);
- if(father_poi->left==poi)
- father_poi->left=NULL;
- else
- father_poi->right=NULL;
- delete poi;
- }
- }
- else if(poi->left!=NULL && poi->right!=NULL){
- tree_struct *prev_poi=previous(number);
- if(poi->left==prev_poi){
- if(prev_poi->left!=NULL)
- poi->left=prev_poi->left;
- else
- poi->left=NULL;
- poi->number=prev_poi->number;
- delete prev_poi;
- }
- else{
- tree_struct *father_prev=find_father(prev_poi->number);
- poi->number=prev_poi->number;
- if(prev_poi->left!=NULL){
- father_prev->right=prev_poi->left;
- }
- else
- father_prev->right=NULL;
- delete prev_poi;
- }
- }
- else{
- if(poi==top){
- tree_struct *poi_help;
- if(poi->left!=NULL){
- poi_help=top->left;
- delete top;
- top=poi_help;
- }
- else{
- poi_help=top->right;
- delete top;
- top=poi_help;
- }
- }
- else{
- tree_struct *father_poi=find_father(number);
- if(poi->left!=NULL){
- if(father_poi->left==poi){
- father_poi->left=poi->left;
- }
- else{
- father_poi->right=poi->left;
- }
- }
- else{
- if(father_poi->left==poi){
- father_poi->left=poi->right;
- }
- else{
- father_poi->right=poi->right;
- }
- }
- delete poi;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement