Ir al contenido principal

Programación en c++: Lista - inserta, media, mayor y menor de una lista





#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
 //mcwH290890//
 struct nodo
  {
   int n;
   struct nodo*sgte;
   };
   typedef struct nodo*Tlista;
   void inserta(Tlista &,int);
   void elimina_inicio(Tlista &);
   void elimina_fin(Tlista &);
   void elimina_elemento(Tlista &,int);
   void elimina_lista(Tlista &);
   void media(Tlista );
   void busqueda(Tlista, int);
   void eliminarepetidos(Tlista &);
   void unelista(Tlista &,Tlista &,Tlista &);
   void mayorlista(Tlista );
   void menorlista(Tlista);
   void eliminapares(Tlista &);
   void numerosprimos(Tlista);
   void ordenaburbuja(Tlista);
   void imprimeinver(Tlista);
   void imprimir(Tlista);
    //cuerpo de la funcion
void imprimir(Tlista lista)
 {
  if(lista==NULL)
  cout<<"la lista vacia, por favor ingrese elementos";
  while(lista!=NULL)
  {
   cout<<lista->n<<endl;
   lista=lista->sgte;
   }
   cout<<endl;
   }
void imprimeinver(Tlista lista)
{
 int x[20],k=0;
 if(lista!=NULL)
 cout<<"la lista vacia, x fa ingrese elementos";
 while(lista!=NULL)
 {
  lista=lista->sgte;
   x[k]=lista->n;
    for(int i=0;i>=0;i--)
    cout<<x[i];
    }
    }
void inserta(Tlista &lista,int k)
 {
  int i;
  Tlista q;
  for(i=0;i<k;i++)
   {
    q=new(struct nodo);
    cout<<"\n\t ELEMENTO ["<<i<<"] :";
    cin>>q->n;
    q->sgte=lista;
    lista=q;
    }
    }
void elimina_inicio(Tlista &lista)
 {
  struct nodo*p;
  if(lista!=NULL)
    {
     p=lista;
     lista=lista->sgte;
     delete(p);
     }
     }
void elimina_fin(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);
  }
void elimina_elemento(Tlista &lista,int valor)
  {
   Tlista p,ant;
   p=lista;
  while(p!=NULL)
  {
  if(p->n==valor)
  {
  if(p==lista)
  lista=lista->sgte;
  else
  ant->sgte=p->sgte;
  delete(p);
  return;
  }
  ant=p;
  p=p->sgte;
  }
  }
void elimina_lista(Tlista &lista)
  {
  Tlista p;
  while(lista!=NULL)
  {
  p=lista;
  lista=lista->sgte;
  delete(p);
  }
  }
void media(Tlista lista)
           {
            Tlista q;
            int i=0;
            int p;
            q=lista;
            while(q!=NULL)
             {
             i++;
           q=q->sgte;
           }
              cout<<" la lista tiene "<<i<<" elementos"<<endl;
               q=lista;
               for(p=1; q!=NULL;  p++)
                {
                 if(  i%2==0)
         {
                  if(p==i/2)
                  {
                   cout<<"\n\t la media";
                   cout<<q->n<<" , ";
                   q=q->sgte;
                   cout<<q->n;
                   return;
       }
           else
                    {
                    q=q->sgte;
         }
             }
                  else
                     {
                     if(p==(i+1)/2)
         {
                      cout<<" la media:";
        cout<<q->n;
        return ;
        }
              else
                        {  q=q->sgte;
             }
                 }
                       }
                         }
void busqueda(Tlista lista, int valor)
      {
       while (lista!=NULL)
     {
        if (valor ==lista->n)
          {
            cout<<"\n\telemento encontrado ";
    return;
            }
   lista=lista->sgte;
   }
  cout<<"\n\telemento no habido ";
      }
void eliminarepetidos(Tlista &lista)
    {
     Tlista t,r, a;
     Tlista p=lista;
      while(p!=NULL)
     {
            t=p;
     r=t->sgte;
       while(r!=NULL)
          {
                       if (p->n==r->n)
        {
                        a=r;
        t->sgte=r->sgte;
        r=r->sgte;
        delete(a);
        }
             else {t=r;
             r=r->sgte; }
             }
                   p=p->sgte;
                   }
                         }
void unelista(Tlista &lista1, Tlista &lista2, Tlista &lista3)
  {
   Tlista t;
   t=lista1;
    if(lista1!=NULL)
     {
   while (t->sgte!=NULL)
    {
         t=t->sgte;
    }
      t->sgte=lista2;
      lista3=lista1;
     }
        else
         {
         lista3=lista2;
     }
         lista1=NULL;
         lista2=NULL;
         }
 void mayorlista(Tlista lista)
 {
  int mayor=0;
  while(lista!=NULL)
  {
     if (lista->n>mayor)
     {
      mayor=lista->n;
  }
   lista=lista->sgte;
     }
       cout<<"\n\t  el mayor es:"<<mayor;
       }
void menorlista(Tlista lista)
{
 int menor=999;
 while(lista!=NULL)
  {
       if(lista->n<menor)
   {
          menor= lista->n;
         }
      lista=lista->sgte;
      }
       cout<<" el menor es:"<<menor;
         }
void eliminapares(Tlista &lista)
{
 Tlista q,a,p,t,m;
 q=new(struct nodo);
 q->n=1;
 q->sgte=lista;
 lista=q;
 p=lista;
 a=p->sgte;
  while(a!=NULL)
  {
     if( a->n%2==0)
     {
      p->sgte=a->sgte;
      t=a;
      a=a->sgte;
      delete(t);
      }
  else
      {
       p=a;
   a=a->sgte;
   }
   }
       m=lista;
       lista=lista->sgte;
       delete(m);
      }
void numerosprimos(Tlista lista)
 {
  int band;
  int num;
  while(lista!=NULL)
  {
       num=lista->n;
   band=1;
     for(int i=2; i<=num/2 ;i++)
           {
            if(num%i==0)
           {
            band=-1;
           }
           }
           if(band==1)
     {
            cout<<lista->n<<" , ";
     }
     lista=lista->sgte;
           }
           }
void ordenaburbuja(Tlista lista )
{   Tlista p,t;
  Tlista marca=NULL;
  int tmp;
  if (lista==NULL)  { return;  }
  else
   {
  while(lista->sgte!=marca)
  {  p=lista;
   t=p->sgte;
      while(t!=marca)
               {
                if (p->n>t->n)
               {
                tmp=p->n;
      p->n=t->n;
                t->n=tmp;
                 }
                 else
                  {
                   p=t;
                   t=t->sgte; }
                  }
                   marca=p;
               }
               }
                   }
  //**************************funcion main**************************************//
                    void main()
                      {
                       Tlista lista1,lista2,lista3,lista;
                       lista1=lista2=lista3=lista=NULL;
                       int valor;
                       char opc,opcion;
                        textbackground(BLUE);
                        do
                         {
                           clrscr();
                           cout<<"\n\ta.INSERTA  ELEMENTOS"<<endl;
                           cout<<"\n\tb.ELIMINAR AL INICIO"<<endl;
                           cout<<"\n\tc.ELIMINAR AL FINAL"<<endl;
                           cout<<"\n\td.ELIMINAR ELEMENTO DADO"<<endl;
                           cout<<"\n\te.ELIMINAR TODA LA LISTA"<<endl;
                           cout<<"\n\tf.IMPRIMIR LISTA"<<endl;
                           cout<<"\n\tg.MEDIA DE LA LISTA"<<endl;
                           cout<<"\n\th.BUSQUEDA DE ELEMENTO"<<endl;
                           cout<<"\n\ti.ELIMINA ELEMENTOS REPETIDOS"<<endl;
                           cout<<"\n\tj.UNE DOS LISTAS"<<endl;
                           cout<<"\n\tk.MAYOR DE LA LISTA"<<endl;
                           cout<<"\n\tl.MENOR DE LA LISTA"<<endl;
                           cout<<"\n\tm.ELIMINA NUMEROS PARES"<<endl;
                           cout<<"\n\tn.NUMEROS PRIMOS"<<endl;
                           cout<<"\n\to.ORDENA POR BURBUJA"<<endl;
                           cout<<"\n\tp.IMPRIME INVERTIDO"<<endl;
                           cout<<"\n\tx.SALIR"<<endl;
                           opcion=getche();
                           while(!strchr("abcdefghijklmnopx",opcion));
                             switch(opcion)
                             {
                              case 'a':{clrscr();
                                      cout<<"\n\tINGRESE LIMITE DE LA LISTA:";
                                      cin>>valor;
                                      inserta(lista,valor);
                                      }
                                      break;
                              case 'b':{clrscr();
                                    cout<<"\n\tELIMINAR AL INICIO";
                                    elimina_inicio(lista);
                                    }
                                    break;
                              case 'c':{clrscr();
                                    cout<<"\n\tELIMINA AL FINAL";
                                    elimina_fin(lista);
                                    }
                                    break;
                              case 'd':{clrscr();
                                     cout<<endl<<"\n\tELIMINA ELEMENTO"<<endl;
                                     cout<<"\n\tVALOR A ELIMINAR:";
                                     cin>>valor;
                                     elimina_elemento(lista,valor);
                                     }
                                     break;
                             case 'e':{clrscr();
                                    cout<<endl<<"\n\tELIMINA LISTA";
                                    elimina_lista(lista);
                                    }
                                    break;
                             case 'f':{clrscr();
                                    cout<<endl<<"\n\tLISTADO"<<endl;
                                    imprimir(lista);
                                    }
                                    break;
                            case 'g':{ clrscr();
                                     cout<<"\n\tmedia de la lista "<<endl;
                        media(lista);
                                    }
                        break;
                            case 'h':{ clrscr();
                                     cout<<"\n\tingrese elemento a buscar:";
                                     cin>>valor;
                                     busqueda(lista,valor);
                                     }
                                     break;
                            case 'i':{clrscr();
                                      cout<<"\n\teliminados elementos repetidos";
                                      eliminarepetidos(lista);
                                     }
                                      break;
                            case 'j':{clrscr();
                                      cout<<"\n\tUNIENDO LISATA";
                                      cout<<"\n\tingrese el limite de las listas:";
                                      cin>>valor;
                                      cout<<"\n\tingrese valores a la lista A";
                                      inserta(lista1,valor);
                                      cout<<"ingresa valores a la lista B";
                                      inserta(lista2,valor);
                                      cout<<"\n\tlista ingresados son:";
                                      cout<<"\n\tlista A"<<endl;
                                      imprimir(lista1);
                                      cout<<"\n\tlista B"<<endl;
                                      imprimir(lista2);
                                      cout<<"\n\tlistas unidas"<<endl;
                                      unelista(lista1,lista2,lista3);
                                      imprimir(lista3);
                                      }
                                      break;
                            case 'k':{clrscr();
                                      cout<<"\n\tel mayor elemento:"<<endl;
                                      mayorlista(lista);
                                      }
                                      break;
                            case 'l':{clrscr();
                                     cout<<"\n\tel menor de la lista"<<endl;
                                     menorlista(lista);
                                     }
                                     break;
                            case 'm':{clrscr();
                                     cout<<"\n\teliminados los numeros pares"<<endl;
                                     eliminapares(lista);
                                     }
                                     break;
                            case 'n':{clrscr();
                                     cout<<"\n\t los numeros primos"<<endl;
                                     numerosprimos(lista);
                                     }
                                     break;
                            case 'o':{clrscr();
                                     cout<<"\n\tordena por burbuja"<<endl;
                                     ordenaburbuja(lista);
                                     cout<<"\n\tlista ordenada"<<endl;
                                     imprimir(lista);
                                     }
                                     break;
                            case 'p':{clrscr();
                                     cout<<"\n\timprime imvertido"<<endl;
                                     imprimeinver(lista);
                                     }
                                     break;
                                     }
                                     cout<<"\n\tregresa al menu [s] o [n]:";cin>>opcion;
                                     }
                              while(opcion!='n');
                              cout<<endl;
                            cout<<"\n\tgracias por su visita vuelva  pronto.........";
                            getche();
                              }

listas enlazadas

listas enlazadas

listas enlazadas

listas enlazadas

listas enlazadas

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...