elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Borrar ultimo nodo lista simplemente enlazada
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Borrar ultimo nodo lista simplemente enlazada  (Leído 3,289 veces)
robertoesimez

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Borrar ultimo nodo lista simplemente enlazada
« 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




Código
  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. class FLORES{//Aquí hago mi clase y mis apuntadores del tipo de la clase
  8.              private:
  9.              FLORES *liga;
  10.              FLORES *primero;
  11.              FLORES *auxiliar;
  12.              FLORES *nuevo;
  13.  
  14.              float precioventa;
  15.  
  16.              public:
  17.              FLORES(){//Inicializo mis apuntadores en NULL
  18.              primero=NULL;
  19.              auxiliar=NULL;
  20.              nuevo=NULL;
  21.              }                
  22.              void ingresa_nodo();
  23.              void mostrar_nodo();
  24.              void borrar_nodo();                      
  25.  
  26.                };
  27.  
  28. void FLORES::ingresa_nodo(){//Mi función para ingresar nodos
  29.  
  30.  
  31.                     system("cls");    
  32.                     if(primero==NULL){
  33.                    cout<<"ENTRO AQUI PORQUE NO HAY NODOS"<<endl;
  34.                    nuevo= new (FLORES);
  35.                    cout<<"Ingrese el precio de la flor"<<endl;
  36.                    cin>>nuevo->precioventa;
  37.                    primero= nuevo;
  38.                    auxiliar= nuevo;
  39.                    nuevo->liga=NULL;
  40.                    }
  41.                    else{
  42.                    cout<<"ENTRO AQUI PORQUE  HAY NODOS"<<endl;    
  43.                    nuevo=new (FLORES);
  44.                    cin>> nuevo->precioventa;
  45.                    auxiliar->liga= nuevo;    
  46.                    auxiliar=nuevo;
  47.                    nuevo->liga=NULL;
  48.                    }
  49.                    }
  50.  
  51.  
  52.  
  53. void FLORES::borrar_nodo(){// El problema XD
  54.                            auxiliar=auxiliar->liga;
  55.                            delete nuevo;
  56.                            auxiliar->liga=NULL;
  57.                            }
  58.  
  59.  
  60.  
  61.  
  62.  
  63. void FLORES::mostrar_nodo(){//Mi función para mostrar nodo
  64.                            auxiliar=primero;
  65.                            while(auxiliar!=NULL){
  66.                            cout<<"Precio:"<<auxiliar->precioventa<<endl;
  67.                            auxiliar=auxiliar->liga;
  68.                            }
  69.                             system("PAUSE");              
  70.                            }
  71.  
  72.  
  73.  
  74. int main(int argc, char *argv[])
  75. {
  76.  
  77. FLORES obj;//Creo mi objeto
  78.  
  79.  
  80. int opc;
  81.  
  82. do{//Menu
  83.   system("cls");
  84.   cout<<"\t"<<"\t"<<"\t"<<"MENU NODO"<<endl<<endl;
  85.   cout<<"1. Ingresar nodo"<<endl;
  86.   cout<<"2. Borrar nodo"<<endl;
  87.   cout<<"3. Ver nodo"<<endl;
  88.   cout<<"4. Salir"<<endl<<endl;
  89.   cout<<"Elige tu opcion:"<<endl,    
  90.   cin>> opc;        
  91. switch (opc){  
  92.             case 1:
  93.             obj.ingresa_nodo();    
  94.             break;
  95.  
  96.  
  97.            case 2:
  98.            obj.borrar_nodo();    
  99.            break;
  100.  
  101.           case 3:
  102.            obj.mostrar_nodo();
  103.            break;  
  104.  
  105.            case 4:
  106.            break;        
  107.  
  108. }  
  109.  
  110.  
  111. }while(opc!=4);      
  112.    system("PAUSE");
  113.    return EXIT_SUCCESS;
  114. }
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  


En línea

Natalia94x

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Borrar ultimo nodo lista simplemente enlazada
« Respuesta #1 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




Código
  1.  
  2.  
  3. void FLORES::borrar_nodo(){// El problema XD
  4.  
  5.                            auxiliar=auxiliar->liga;
  6.                            delete nuevo;
  7.    auxiliar->liga=NULL;
  8.                            }
  9.  
  10.  


Código
  1.   void FLORES::borrar_nodo(){// El problema XD
  2.  
  3. primero = NULL; // restablecer var
  4.  
  5.                            }
  6.  

Este code restablece la variable a 0, espero que te sirva, SALUDOS!.


« Última modificación: 22 Marzo 2017, 22:07 pm por Natalia94x » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.532



Ver Perfil
Re: Borrar ultimo nodo lista simplemente enlazada
« Respuesta #2 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.
En línea

robertoesimez

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Borrar ultimo nodo lista simplemente enlazada
« Respuesta #3 en: 22 Marzo 2017, 22:16 pm »

Las clases me las pidio el profesor si no, no me revisa mi programa
En línea

Natalia94x

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Borrar ultimo nodo lista simplemente enlazada
« Respuesta #4 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.
« Última modificación: 22 Marzo 2017, 23:26 pm por Natalia94x » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.532



Ver Perfil
Re: Borrar ultimo nodo lista simplemente enlazada
« Respuesta #5 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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines