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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  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 2,568 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.479



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

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
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.479



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

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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