Alguien me puede ayudar a borrar el ultimo nodo en mi lista simplemente enlazada, se lo agradecería mucho
#include <cstdlib>
#include <iostream>
using namespace std;
class FLORES{//Aquí hago mi clase y mis apuntadores del tipo de la clase
private:
FLORES *liga;
FLORES *primero;
FLORES *auxiliar;
FLORES *nuevo;
float precioventa;
public:
FLORES(){//Inicializo mis apuntadores en NULL
primero=NULL;
auxiliar=NULL;
nuevo=NULL;
}
void ingresa_nodo();
void mostrar_nodo();
void borrar_nodo();
};
void FLORES::ingresa_nodo(){//Mi función para ingresar nodos
system("cls");
if(primero==NULL){
cout<<"ENTRO AQUI PORQUE NO HAY NODOS"<<endl;
nuevo= new (FLORES);
cout<<"Ingrese el precio de la flor"<<endl;
cin>>nuevo->precioventa;
primero= nuevo;
auxiliar= nuevo;
nuevo->liga=NULL;
}
else{
cout<<"ENTRO AQUI PORQUE HAY NODOS"<<endl;
nuevo=new (FLORES);
cin>> nuevo->precioventa;
auxiliar->liga= nuevo;
auxiliar=nuevo;
nuevo->liga=NULL;
}
}
void FLORES::borrar_nodo(){// El problema XD
auxiliar=auxiliar->liga;
delete nuevo;
auxiliar->liga=NULL;
}
void FLORES::mostrar_nodo(){//Mi función para mostrar nodo
auxiliar=primero;
while(auxiliar!=NULL){
cout<<"Precio:"<<auxiliar->precioventa<<endl;
auxiliar=auxiliar->liga;
}
system("PAUSE");
}
int main(int argc, char *argv[])
{
FLORES obj;//Creo mi objeto
int opc;
do{//Menu
system("cls");
cout<<"\t"<<"\t"<<"\t"<<"MENU NODO"<<endl<<endl;
cout<<"1. Ingresar nodo"<<endl;
cout<<"2. Borrar nodo"<<endl;
cout<<"3. Ver nodo"<<endl;
cout<<"4. Salir"<<endl<<endl;
cout<<"Elige tu opcion:"<<endl,
cin>> opc;
switch (opc){
case 1:
obj.ingresa_nodo();
break;
case 2:
obj.borrar_nodo();
break;
case 3:
obj.mostrar_nodo();
break;
case 4:
break;
}
}while(opc!=4);
system("PAUSE");
return EXIT_SUCCESS;
}
Cita de: robertoesimez en 22 Marzo 2017, 20:31 PM
Alguien me puede ayudar a borrar el ultimo nodo en mi lista simplemente enlazada, se lo agradecería mucho
void FLORES::borrar_nodo(){// El problema XD
auxiliar=auxiliar->liga;
delete nuevo;
auxiliar->liga=NULL;
}
void FLORES::borrar_nodo(){// El problema XD
primero = NULL; // restablecer var
}
Este code restablece la variable a 0, espero que te sirva, SALUDOS!.
A simple vista creo que la clase está mal planteada. Primero intenta realizar el trabajo sin clases, como si fuera C. Verás que sobran muchas cosas.
Las clases me las pidio el profesor si no, no me revisa mi programa
Cita de: robertoesimez en 22 Marzo 2017, 22:16 PM
Gracias, pero solo quiere me borre el ultimo nodo no toda la lista y con eso se me borra todo
AH no te había entendido pero de todos modos arregla la clase, hay muchos errores en las vars, SALUDOS.
No, robertoesimez, no lo digo por eso. La cosa es que empieces sin clases; solo structs, arrays y funciones. Así verás más claras claras las colas. Cuando funcione lo pasas a clase.