Título: Borrar ultimo nodo lista simplemente enlazada
Publicado por: 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 #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; }
Título: Re: Borrar ultimo nodo lista simplemente enlazada
Publicado por: Natalia94x en 22 Marzo 2017, 21:53 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!.
Título: Re: Borrar ultimo nodo lista simplemente enlazada
Publicado por: MAFUS en 22 Marzo 2017, 22:07 pm
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.
Título: Re: Borrar ultimo nodo lista simplemente enlazada
Publicado por: robertoesimez en 22 Marzo 2017, 22:16 pm
Las clases me las pidio el profesor si no, no me revisa mi programa
Título: Re: Borrar ultimo nodo lista simplemente enlazada
Publicado por: Natalia94x en 22 Marzo 2017, 23:24 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.
Título: Re: Borrar ultimo nodo lista simplemente enlazada
Publicado por: MAFUS en 23 Marzo 2017, 07:22 am
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.
|