maxresdefault 15

Eliminar elementos de una lista en C++ [117]

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

  • Validar que la lista no este vacia.
  • Crear un nodo aux y anterior.
  • Clonar la lista en aux.
  • Ir recorriendo los elementos de la lista hasta encontrar el elemento.
  • Si se encontr籀 el elemento se borra
Eliminar elementos de una lista en C++

Codigo: https://github.com/programadornovato/c-/commit/d5c478d615e0ab3354e5e6a026b9eb8151d1fc4f

#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);
int main(){
    int dato,numeroEliminar;
    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);
    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){
    Nodo *actual=new Nodo();
    actual=lista;
    while (actual!=NULL)
    {
        std::cout<<"Valor del nodo es "<<actual->dato<<"\n";
        actual=actual->siguiente;
    }
    
}
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;
}

[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. :)