Ir al contenido principal

Programación en c++ : Lista enlazadas - Insertar, eliminar lista, mostrar pares e impares

1.- Hacer un programa que permita insertar elementos al inicio, eliminar elemento inicial, eliminar elemento final y eliminar todos los elementos de una lista. El programa también nos mostrará los elementos pares e impares de una lista.





#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
struct nodo{
           int nro;
           struct nodo*sgte;
           };
typedef struct nodo*Tlista;
void eliminainicio(Tlista &);
void eliminafin(Tlista &);
void eliminalista(Tlista &);
void insertalinicio(Tlista &, int);
int pares(Tlista &);
int impares(Tlista &);
void imprimir(Tlista);
void main()
{
Tlista lista=NULL;
int opc,valor,n,i;
do{
  cout<<"1.Insertar elementos:"<<endl;
  cout<<"2.Eliminar al inicio:"<<endl;
  cout<<"3.Eliminar al final:"<<endl;
  cout<<"4.Pares de una lista:"<<endl;
  cout<<"5.Impares de una lista:"<<endl;
  cout<<"6.Listado:"<<endl;
  cout<<"7.Salir:"<<endl;
  cout<<"Ingrese una opcion:"<<endl;cin>>opc;
  switch(opc)
  {
  case 1:{clrscr();
  cout<<"Numero de elementos";cin>>n;
  for(i=0;i<n;i++)
  {
  cout<<"Ingrese elementos = ";cin>>valor;
  insertalinicio(lista,valor);
  }
  break;
  }
  case 2:{clrscr();
  cout<<"Elimina al inicio";
  eliminainicio(lista);
  break;
  }
  case 3: {clrscr();
  cout<<"Elimina al final";
  eliminafin(lista);
  break;
  }
  case 4:{clrscr();
  pares(lista);
  cout<<"Los numeros pares son:"<<endl;
  imprimir(lista);
  break;
  }
  case 5:{clrscr();
  impares(lista);
  cout<<"Los numeros impares son:"<<endl;
  imprimir(lista);
  break;
  }

  case 6:{clrscr();
  cout<<endl<<"Listado"<<endl;
  imprimir(lista);
  break;
  }
  }
  }while(opc!=7);
  clrscr();
}

void imprimir(Tlista lista)
{
while(lista!=NULL)
 {
 cout<<lista->nro<<endl;
 lista=lista->sgte;
 }
cout<<endl;
}
void insertalinicio(Tlista &lista,int valor)
{
Tlista q;
q=new(struct nodo);
q->nro=valor;
q->sgte=lista;
lista=q;
}
void eliminainicio(Tlista &lista)
{
struct nodo*p;
if(lista!=NULL)
 {
 p=lista;
 lista=lista->sgte;
 delete(p);
 }
}
void eliminafin(Tlista &lista)
{
Tlista p,ant;
if(lista==NULL)return;
p=lista;
if(lista->sgte==NULL)
lista=lista->sgte;
else
 {
 while(p->sgte!=NULL)
  {
  ant=p;
  p=p->sgte;
  }
 ant->sgte=NULL;
 }
delete(p);
}
int pares(Tlista &lista)
{
Tlista p;
if(lista==NULL)
return 0;
 while(lista!=NULL)
 {
  if(p->nro%2==0)
   {
   p->sgte=lista;
   p=lista;
   }
 }return 1;
}
int impares(Tlista &lista)
{Tlista q;
if(lista==NULL)
return 0;
 while(lista!=NULL)
 {
  if(q->nro%2!=0)
   {
   q->sgte=lista;
   q=q->sgte;
   }
 } return 1;
}

Comentarios

Entradas más populares de este blog

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);         }                                     } ...

Programacion: Arbol binario - Programacion en c++

1.- Hacer un programa que permita buscar un elemento, el elemento mayor, el elemento menor y el menor de los mayores de un árbol binario. #include <iostream.h> #include <conio.h> struct nodo     {      int valor;      struct nodo* izq;      struct nodo* der;     }; typedef struct nodo *ABB; void inserta(ABB& ,int); void preorden(ABB); void postorden(ABB); void enorden(ABB); void verarbol(ABB,int); int buscar(ABB,int); int buscarmayor(ABB); int buscarmenor(ABB); void podar(ABB&,int); void main() { ABB arbol=NULL; ABB subarbol=NULL; int n,x,opc,a;   do     {      cout<<"menu principal"<<endl;      cout<<"1.ingresar elementos"<<endl;      cout<<"2.pre orden"<<endl;      cout<<"3.mostrar hojas"<...

Programacion: Arreglos con estructuras - ordenamientos

1.- Se pide realizar un ordenamiento de artículos, para ello se debe ingresar n artículos y ordenarlos por su monto de inversión. struct articulo {char codigo[10];  char producto[20];  float preciocompra;  float monto;  int cantidad;  }  #include<iostream.h> #include<string.h> #include<conio.h> #define MAX 50 struct articulo {char codigo[10];  char producto[20];  float preciocompra;  float monto;  int cantidad;  };  void leer(int, struct articulo[]);  void montodeinversion(int, struct articulo[]);  void ordenmonto(int, struct articulo[]);  void listado(int, struct articulo[]);  void main()  {int n;   struct articulo Art[MAX];   cout<<"Cantidad de articulos que desea poner:";   cin>>n;   leer(n,Art);   montodeinversion(n,Art);   ordenmonto(n,Art);   cout<<"productos ordenados por su cantidad de mont...