Ir al contenido principal

Programación en c++ : Listas dobles - Inserta, busca, elimina y muestra elementos

1.- Hacer un programa mediante listas enlazadas, donde inserte, busque y elimine elementos de una lista.





#include<iostream.h>
#include<conio.h>
#include<stdio.h>
struct nodo{
            int nro;
            struct nodo *sgte;
            struct nodo *ant;
            };
typedef struct nodo *Tlista;
void insertar(Tlista&, int);
void insertarfinal(Tlista&,int);
bool buscar(Tlista&,int,int&);
void eliminarlista(Tlista&);
void imprimir(Tlista);
void main()
{Tlista lista=NULL;
 int valor, opc,pos;
 bool R;
 do
 {
 cout<<"1. Insertar al Inicio"<<endl;
 cout<<"2. Insertar al Final"<<endl;
 cout<<"3. Busqueda"<<endl;
 cout<<"4. Eliminar Lista"<<endl;
 cout<<"5. Ver Lista"<<endl;
 cout<<"6. Salir"<<endl;
 cout<<"Ingrese Opcion:";
 cin>>opc;
 char opc0='s';
 switch(opc)
 {
 case 1: while(opc0=='s' || opc0=='S')
         {
         cout<<"Ingrese valor al inicio:";
         cin>>valor;
         insertar(lista, valor);
         cout<<endl;
         cout<<"Seguir ingresando [s/n]: ";cin>>opc0;
         }
         break;
 case 2: while(opc0=='s' || opc0=='S')
         {cout<<"Ingrese valor al final:";
         cin>>valor;
         insertarfinal(lista,valor);
         cout<<endl;
         cout<<"Seguir ingresando [s/n]: ";cin>>opc0;
         }
         break;
 case 3: cout<<"***Buscar un Valor de la lista***"<<endl;
         cout<<"Ingrese valor a buscar:";
         cin>>valor;
         imprimir(lista);
         R= buscar(lista,valor,pos);
         if(R==true)
         {cout<<"El valor buscado es:"<<valor;
          cout<<"Posicion:"<<pos;
          getch();
          }
          else
          {cout<<"Valor buscado es:"<<valor;
          cout<<"Posicon: Ninguna";
          }
         break;
 case 4: cout<<"***Elementos***";
         eliminarlista(lista);
         getch();
         break;
 case 5: cout<<"Listado"<<endl;
         imprimir(lista);
         getch();
         break;
 }
 clrscr();
 }while(opc!=6);
 }
 void insertar(Tlista &lista, int valor)
 {Tlista nuevo, actual;
  nuevo=new(struct nodo);
  nuevo->nro=valor;
  actual=lista;
  if(lista==NULL)
  {
   lista=nuevo;
   lista->ant=NULL;
   lista->sgte=NULL;
   }
   else
   {
    nuevo->sgte=lista;
    nuevo->ant=lista->ant;
    lista->ant=nuevo;
    lista=nuevo;
    }
  }
  void insertarfinal(Tlista &lista, int valor)
  {Tlista nuevo, actual;
   nuevo=new(struct nodo);
   nuevo->nro=valor;
   actual=lista;
   if(lista==NULL)
   {
    lista=nuevo;
    lista->ant=NULL;
    lista->sgte=NULL;
    }
    else
    {
     while(actual->sgte!=NULL)
     {
     actual=actual->sgte;
     }
     nuevo->sgte=actual->sgte;
     actual->sgte=nuevo;
     nuevo->ant=actual;
     }
   }
   void eliminarlista(Tlista &lista)
   {
   lista=NULL;
   }

  bool buscar(Tlista &lista, int valor, int&pos)
  { Tlista aux=lista;
    pos=0;
    while(aux!=NULL)
    {
     if(aux->nro==valor)
     {
     return true;
    }
    aux=aux->sgte;
    pos++;
    }
    return false;
  }
  void imprimir(Tlista lista)
  {Tlista aux = lista;
   int i = 0;
   while (lista != NULL)
   {
cout<<"N["<<i<<"] = {"<<lista->nro<<"}, ";
      lista = lista->sgte;
      i++;
   }
   if(i==0)
   {
cout<<"\nLa lista no tiene datos ... Press Enter";
   }
}

Comentarios

Entradas más populares de este blog

Programación en c++ : Matriz - Calcular mayor de la matriz

1.- Hacer un programa que permita ingresar n datos de una matriz y calcular el mayor de la matriz. #include<iostream.h> #include<conio.h> #define lim 50 void main() {int i,j,a[lim][lim],fila,col,  may=a[0][0];  clrscr(); do {cout<<"Ingresar limite de la fila:";  cin>>fila; }while(fila<=0); do {cout<<"Ingesar limite de la columna:";  cin>>col; }while(col<=0); gotoxy(10,7); cout<<"Ingresar Elementos de la matriz\n\n"; for(i=0;i<fila;i++) for(j=0;j<col;j++) {cout<<"a["<<i<<"]"<<"["<<j<<"]";  cin>>a[i][j]; } for(i=0;i<fila;i++) for(j=0;j<col;j++) if(a[i][j]>may) may=a[i][j]; clrscr(); gotoxy(10,7); cout<<"Elementos de la matriz\n\n"; for(i=0;i<fila;i++) for(j=0;j<col;j++) {cout<<a[i][j];  cout<<"\n"; } clrscr(); gotoxy(10,20); cout...

Lenguaje de Programacion en Java: Ecuación de primer grado

public class Main {     public static void main(String[] args) {         float x,a,e;                   Scanner teclado = new Scanner(System.in);         System.out.println("Coeficiente de X:");         x=teclado.nextInt();         System.out.println("Término independiente:");         a=teclado.nextInt();         if(a==0)           System.out.println("No es una ecuación de primer grado");           else         {              e=-a/x;              System.out.println("La raíz es=" +e);         }                                     } ...

Programación en Java: Suma de los cuadrados de los primeros números

public class Main {     public static void main(String[] args) {         int n,s;                  Scanner teclado = new Scanner(System.in);         System.out.println("Ingresar cantidad de elementos:");         n=teclado.nextInt();                      s=(n*(n+1)*(2*n+1))/6;                   System.out.println("Suma de los cuadrados de los primeros números=" +s);                   }    }