Eliminar elemento de lista doble
Listas dobles c++
Mediante programación en C++, en el siguiente programa, haremos uso de listas dobles que permita eliminar un elemento. La cual contará con un Menú de 4 opciones la cual se describe en la codificación.
#include<iostream.h>
#include<conio.h>
struct nodo{
int nro;
struct nodo*sgte;
};
typedef struct nodo*TLista;
void insertaAlInicio(TLista &,int);
void eliminaElemento(TLista &, int);
void imprimir(TLista);
void main(void)
{
clrscr();
getche();
TLista lista=NULL;
int opc,valor,pos,ps;
do
{
cout<<"PROGRAMA QUE REALIZA FUNCIONES PRINCIPALES CON LISTAS ENLAZADAS "<<endl;
cout<<"--------------------------------------------------------------- "<<endl<<endl;
cout<<"**** MENU ****"<<endl;
cout<<"1. Inserta al inicio"<<endl;
cout<<"2. Listado"<<endl;
cout<<"3. Elimina elemento "<<endl;
cout<<"4. Salir"<<endl;
cout<<"ingrese su opcion: ";
cin>>opc;
switch(opc)
{
case 1: clrscr();cout<<"ingrese valor a insertar al inicio: \n";
cin>>valor;
insertaAlInicio(lista,valor);
break;
case 2: clrscr();cout<<endl<<"Listado \n"<<endl;
imprimir(lista) ;
break;
case 3: clrscr();cout<<endl<<"Elimina elemento :"<<endl;
cout<<"valor del elemento ";cin>>valor;
eliminaElemento(lista, valor);
break;
}
}while(opc!=4);
}
void imprimir(TLista lista)
{ while (lista!=NULL)
{cout<<lista->nro<<endl;
lista=lista->sgte;
}
cout<<endl;
}
void insertaAlInicio(TLista &lista, int valor)
{
TLista q;
q=new(struct nodo);
q->nro=valor;
q->sgte=lista;
lista=q;
}
void eliminaElemento(TLista & lista , int valor)
{
TLista p,ant;
p=lista;
while (p!=NULL)
{ if (p->nro==valor)
{ if(p==lista)
lista=lista->sgte;
else
ant->sgte=p->sgte;
delete(p);
return;
}
ant=p;
p=p->sgte;
}
}
Como se puede ver en las imágenes, el programa eliminar elemento de una lista doble, tienen un menú de 4 opciones:
Al elegir la primera opción del menú, nos deberá pedir el valor que queremos insertar al inicio de la lista doble.
La segunda opción del menú, deberá mostrar todos los elementos ingresados en la lista doble.
La tercera opción del menú, deberá pedir al usuario el valor que desea eliminar y automáticamente se borrará de la lista doble.
Y finalmente la opción salir, que nos permitirá salir de la aplicación.
Espero que este ejercicio de listas dobles te haya servido de mucha ayuda; y si te ha gustado este post, no dudes en compartirlo!!
Continuando con Listas Dobles en C++, les comparto el siguiente post: Multiplica pares, divide impares en una lista doble