maxresdefault 14

Buscar elementos de una lista en C++ [116]

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

  • Clonamos la lista en la variable actual.
  • Hacer un ciclo hasta que actual sea null.
  • Determinar si el elemento est獺 en la lista.
Buscar elementos de una lista en C++

Codigo: https://github.com/programadornovato/c-/commit/69e5b70f07ce3bf7574c7bc5b23d87a5a2be48d8

#include <iostream>
struct Nodo
{
    int dato;
    Nodo *siguiente;
};
void insertarNodoLista(Nodo *&lista,int dato);
void mostrarNodoLista(Nodo *&lista);
bool buscarNodoLista(Nodo *&lista,int buscar);
int main(){
    int dato;
    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";
    }
    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;
}

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