0% encontró este documento útil (0 votos)
108 vistas2 páginas

Listas Enlazadas Simples en C++

Este documento describe cómo implementar listas simplemente enlazadas en C++. Define una estructura Nodo que almacena un dato y un puntero al siguiente nodo. Luego presenta funciones para insertar, mostrar, buscar y eliminar nodos de una lista. El programa principal crea una lista vacía, inserta 3 números ingresados por el usuario, muestra la lista, busca un nodo, y elimina un nodo antes de volver a mostrar la lista.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
108 vistas2 páginas

Listas Enlazadas Simples en C++

Este documento describe cómo implementar listas simplemente enlazadas en C++. Define una estructura Nodo que almacena un dato y un puntero al siguiente nodo. Luego presenta funciones para insertar, mostrar, buscar y eliminar nodos de una lista. El programa principal crea una lista vacía, inserta 3 números ingresados por el usuario, muestra la lista, busca un nodo, y elimina un nodo antes de volver a mostrar la lista.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

/*listas simples enlazadas en C++.

*/

#include <iostream>

using namespace std;

struct Nodo{
int dato;
Nodo *siguiente;
};

void insertarLista(Nodo *&, int);


void mostrarLista(Nodo *);
void buscarLista(Nodo *);
void eliminarNodo(Nodo *&);

int main()
{
Nodo *lista = NULL;
int numero;

cout << "\t Inserte Su Numero\n";


cin >> numero;
insertarLista(lista, numero);
cout << "\t Inserte Su Numero\n";
cin >> numero;
insertarLista(lista, numero);
cout << "\t Inserte Su Numero\n";
cin >> numero;
insertarLista(lista, numero);

mostrarLista(lista);
buscarLista(lista);
eliminarNodo(lista);
mostrarLista(lista);
return 0;
}
void insertarLista(Nodo *&lista, int n){
Nodo *nuevo_nodo = new Nodo();
nuevo_nodo->dato = n;

Nodo *aux1 = lista;


Nodo *aux2;

while((aux1 != NULL) && (aux1->dato < n)){


aux2 = aux1;
aux1 = aux1->siguiente;
}
if(lista == aux1){
lista = nuevo_nodo;
}else{
aux2->siguiente = nuevo_nodo;
}
nuevo_nodo->siguiente = aux1;
}

void mostrarLista(Nodo *lista){


Nodo *actual = new Nodo();
actual = lista;

while(actual != NULL){
cout << actual->dato << "-->";
actual = actual->siguiente;
}
}
void buscarLista(Nodo *lista){
int n;
cout << "\nBusque su nodo\n";
cin >> n;

bool band = false;

Nodo *actual = lista;

while(actual != NULL && actual->dato<=n){


if(actual->dato == n){
band = true;
}
actual = actual->siguiente;
}
if(band == true){
cout << "Se ha encontrado su nodo\n";
}else{
cout << "No se ha encontrado su nodo\n";
}
}
void eliminarNodo(Nodo *&lista){
int n;
cout << "\n Introduzca el valor que quiere eliminar ";
cin >> n;
if(lista != NULL){
Nodo *aux_borrar;
Nodo *anterior = NULL;
aux_borrar = lista;

while(aux_borrar != NULL && aux_borrar->dato != n){


anterior = aux_borrar;
aux_borrar = aux_borrar->siguiente;
}
if(aux_borrar == NULL){
cout << "\nElemento no encontrado\n";
}else if(anterior == NULL){
lista = lista->siguiente;
delete aux_borrar;
cout << "\nElemento eliminado\n";
}else{
anterior->siguiente = aux_borrar->siguiente;
delete aux_borrar;
cout << "\nElemento eliminado\n";
}
}
}

También podría gustarte