maxresdefault 16

Eliminar una la lista en C++ [118]

En este tutorial vamos a eliminar una la lista en C++ siguiendo estos pasos:

  • Validar que la lista no este vacia.
  • Crear un nodo aux en el que se va a clonar la lista.
  • Apuntar al siguiente nodo de la lista con ayuda de aux.
  • Borrar aux.
Eliminar una la lista en C++

Codigo: https://github.com/programadornovato/c-/commit/476adbf896e63a3865b18661fe578a3fb3524b4c

#include <iostream>
struct Nodo
{
    int dato;
    Nodo *siguiente;
};
void insertarNodoLista(Nodo *&lista,int dato);
void mostrarNodoLista(Nodo *&lista);
bool buscarNodoLista(Nodo *&lista,int buscar);
bool eliminarNodoLista(Nodo *&lista,int numeroBorrar);
void borrarLista(Nodo *&lista,int &numero);
int main(){
    int dato,numeroEliminar,numeroEliminado;
    char respuesta;
    Nodo *lista=NULL;
    regresar:
    std::cout<<"Ingresa un dato en la lista: ";
    std::cin>>dato;
    insertarNodoLista(lista,dato);
    std::cout<<"Deseas insertar otro dato (s/n):";
    std::cin>>respuesta;
    if(respuesta=='s'  || respuesta=='S'){
        goto regresar;
    }
    mostrarNodoLista(lista);
    /*
    std::cout<<"Numero a buscar: ";
    std::cin>>dato;
    if(buscarNodoLista(lista,dato)==true){
        std::cout<<"El valor "<<dato<<" si esta en la lista\n";
    }
    else{
        std::cout<<"El valor "<<dato<<" no esta en la lista\n";
    }
    */
   /*
   std::cout<<"Numero a eliminar:";
   std::cin>>numeroEliminar;
   if(eliminarNodoLista(lista,numeroEliminar)==true){
       std::cout<<"El numero "<<numeroEliminar<<" ha sido eliminado de la lista\n";
   }else{
       std::cout<<"El numero "<<numeroEliminar<<" no ha sido encontrado\n";
   }
   mostrarNodoLista(lista);
   */
    while (lista!=NULL)
    {
        borrarLista(lista,numeroEliminado);
        std::cout<<"Se elimino "<<numeroEliminado<<"\n";
    }
    mostrarNodoLista(lista);
    system("pause");
    return 0;
}
void insertarNodoLista(Nodo *&lista,int dato){
    Nodo *nuevoNodo=new Nodo();
    nuevoNodo->dato=dato;
    Nodo *aux1=lista;
    Nodo *aux2;
    while ( (aux1!=NULL) && (aux1->dato<dato) ){
        aux2=aux1;
        aux1=aux1->siguiente;
    }
    if(lista==aux1){
        lista=nuevoNodo;
        nuevoNodo->siguiente=aux1;
    }else{
        aux2->siguiente=nuevoNodo;
        nuevoNodo->siguiente=aux1;
    }
    std::cout<<"El dato "<<dato<<" se ha insertado\n";
}
void mostrarNodoLista(Nodo *&lista){
    if(lista!=NULL){
        Nodo *actual=new Nodo();
        actual=lista;
        while (actual!=NULL)
        {
            std::cout<<"Valor del nodo es "<<actual->dato<<"\n";
            actual=actual->siguiente;
        }
    }
    else{
        std::cout<<"Esta lista esta vacia\n";
    }
}
bool buscarNodoLista(Nodo *&lista,int buscar){
    bool encontrado=false;
    Nodo *actual=new Nodo();
    actual=lista;
    while ( (actual!=NULL) && (actual->dato<=buscar) )
    {
        if(actual->dato==buscar){
            encontrado=true;
        }
        actual=actual->siguiente;
    }
    return encontrado;
}

bool eliminarNodoLista(Nodo *&lista,int numeroBorrar){
    bool encontrado=false;
    if(lista!=NULL){
        Nodo *aux=lista,*anterior=NULL;
        while ( (aux!=NULL) && (aux->dato!=numeroBorrar) ){
            anterior=aux;
            aux=aux->siguiente;
        }
        if(aux==NULL){
            encontrado=false;
        }else if(anterior==NULL){
            lista=lista->siguiente;
            delete aux;
            encontrado=true;
        }else{
            anterior->siguiente=aux->siguiente;
            delete aux;
            encontrado=true;
        }
    }
    return encontrado;
}
void borrarLista(Nodo *&lista,int &numero){
    if(lista!=NULL){
        Nodo *aux=lista;
        numero=aux->dato;
        lista=aux->siguiente;
        delete aux;
    }
}

[Curso] Visual Studio Code de 0 a 100: https://www.youtube.com/playlist?list=PLCTD_CpMeEKQbdlT8efsS-veXuvYZ1UWn

Descargar zip con todos los codigos: http://raboninco.com/bXZK
[CURSO] C++ DE 0 A HEROE: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTofxs7iottRxJ5YPM7BOcc

[Curso] Visual Studio Code de 0 a 100: https://www.youtube.com/playlist?list=PLCTD_CpMeEKQbdlT8efsS-veXuvYZ1UWn

Gracias por apoyar este canal: https://www.patreon.com/programadornovato
Facebook: https://facebook.com/ProgramadorNovatoOficial
Twitter: https://twitter.com/programadornova
Linkedin: https://www.linkedin.com/in/programadornovato/
Instagram: https://www.instagram.com/programadornovato/
Pagina oficial: https://www.programadornovato.com

<<Anterior tutorial Siguiente tutorial >>

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

En Programador Novato vivimos de los anuncios, hemos detectado que est獺 utilizando extensiones para bloquear anuncios. Ayudanos deshabilitando tu bloqueador de anuncios. :)