Scusate ragazzi ma ho un problema con il codice su riportato!!!Originariamente inviato da pakylory
codice://Questa funzione cerca tutte le foglie dell'albero e, se l'utente vuole, le //può cancellare... void albero::elimina_foglia(ele_albero *ptr_iniz) { ele_albero *ptr_sin, *ptr_des; ptr_sin = ptr_iniz->p_alb_sin; ptr_des = ptr_iniz->p_alb_des; if(ptr_sin == NULL && ptr_des == NULL) //è un solo nodo { delete p_iniz; p_iniz = NULL; cout<<"ELIMINATA RADICE!! ALBERO VUOTO!!\n\n"; } char risp; //ramo sinistro if (ptr_sin != NULL) if (ptr_sin->p_alb_sin == NULL && ptr_sin->p_alb_des == NULL) { cout<<"Trovata foglia: "<<ptr_sin->dato<<". Cancellare?"; cin>>risp; if(risp=='s') { delete ptr_sin; ptr_iniz->p_alb_sin=NULL; } } else elimina_foglia(ptr_sin); //ramo destro if (ptr_des != NULL) if (ptr_des->p_alb_sin == NULL && ptr_des->p_alb_des == NULL) { cout<<"\nTrovata foglia: "<<ptr_des->dato<<". Cancellare?"; cin>>risp; if(risp == 's') { delete ptr_des; ptr_iniz->p_alb_des = NULL; } } else elimina_foglia(ptr_des); }
Non si riesce ad eliminare l'ultimo dato ovvero la radice, come mai???
Per favore rispondete![]()
![]()