Plantillas para editar en Word – PowerPoint y Excel

Descarga plantillas y edítalo gratis

videotutorial powerpoint

Tutorial PowerPoint

Aprende a crear presentaciones interactivas usando animaciones, audio y videos.

videotutorial word

Tutorial Word

Aprende a crear documentos y plantillas para tus trabajos usando herramientas de Word

videotutorial excel

Tutorial Excel

Aprende a crear tablas, insertar datos, usar fórmulas y funciones para tus trabajos en Excel

Tienda de Productos digitales

Productos Digitales

Tenemos una tienda digital donde brindamos plantillas de pago para editar en Word, PowerPoint y Excel.


Lista Doble – Multiplica pares

Dada una lista doble, Multiplique por dos todos los elementos que son pares y divida entre dos todos los elementos que son impares.

#include<conio.h>
#include<iostream.h>
struct nodo
{
 int nro;
 struct nodo* sgte;
 struct nodo* ante;
};
typedef struct nodo* Tlista;
void InsertaAlInicio(Tlista&,int);
void InsertaAlFinal(Tlista&,int);
void EliminaAlInicio(Tlista&);
bool Busqueda(Tlista,int,int&);
void EliminarLista(Tlista&);
void Imprimir(Tlista);
void EliminaElemento(Tlista&,int);
void Ordenar(Tlista&);
void main(void)
{
 Tlista lista=NULL;
 int opc,valor,pos;
 bool R;
 do
 {
  cout<<"======================================n";
    cout<<"=============== MENU =================n";
  cout<<"======================================n";
  cout<<"| 1.- Inserta al inicio              |n";
  cout<<"| 2.- Inserta al final               |n";
  cout<<"| 3.- Busqueda                       |n";
  cout<<"| 4.- Eliminar Lista                 |n";
  cout<<"| 5.- Listado [Izquierda - Derecha]  |n";
  cout<<"| 6.- Elimina al inicio              |n";
  cout<<"| 7.- Elimina Elemento               |n";
  cout<<"| 8.- Ordenar Lista y mostrar los elementos mltiplicados y divididos                  |n";
  cout<<"| 9.- Salir                          |n";
  cout<<"======================================n";
  cout<<"======================================n";
  cout<<"IngreseOpcion: ";cin>>opc;
  char opc0='s';
  switch(opc)
  {
   case 1:
    while(opc0=='s' || opc0=='S')
            {
     cout<<"=============================n";
     cout<<"Numero : ";cin>>valor;
               if(valor%2==0)
        InsertaAlInicio(lista,valor*2);
               else
                InsertaAlInicio(lista,valor/2);
               cout<<"Seguir ingresando [s/n]: ";cin>>opc0;
          }
    break;
   case 2:
          while(opc0=='s' || opc0=='S')
          {
             cout<<"=============================n";
     cout<<"Numero : ";cin>>valor;
               if(valor%2==0)
      InsertaAlFinal(lista,valor*2);
               else
                InsertaAlFinal(lista,valor/2);
     cout<<"Seguir ingresando [s/n]: ";cin>>opc0;
            }
    break;
   case 3:
    cout<<"=============================n";
    cout<<"Ingrese el valor a buscar: ";cin>>valor;
    cout<<"nListadon";
    Imprimir(lista);
    R=Busqueda(lista,valor,pos);
    if(R==true)
    {
     cout<<"ntValor buscado: "<<valor;
     cout<<"ntEstado       : Existe";
     cout<<"ntPosicion     : "<<pos;getch();
    }
    else
    {
     cout<<"ntValor buscado: "<<valor;
     cout<<"ntEstado       : No Existe";
     cout<<"ntPosicion     : Ninguna";
    }
    break;
   case 4:
    cout<<"=============================n";
    cout<<"nElementosn";
    EliminarLista(lista);getch();
    break;
   case 5:
    cout<<"=============================n";
    cout<<"nListadon";
    Imprimir(lista);getch();
    break;
   case 6:
    cout<<"=============================n";
    EliminaAlInicio(lista);
    getch();
    break;
   case 7:
    cout<<"=============================n";
    cout<<"Ingrese el valor a eliminar: ";cin>>valor;
            cout<<"nElmetodo eliminara todos los elementos que ncoincidan con el valor ingresado ...n";
    EliminaElemento(lista,valor);
    getch();
          break;
   case 8:
    cout<<"=============================n";
            cout<<"nLista Ordenadan";
    Ordenar(lista);
            Imprimir(lista);getch();
            break;
  } //FIN DEL SWITCH
  clrscr();
 }while(opc!=9);
}

void InsertaAlInicio(Tlista&lista,int valor)
{
 Tlista pos,nu;
   nu  = new (struct nodo);
   nu->nro = valor;
   pos = lista;
 if(lista == NULL)
   {
  lista = nu;
      lista->sgte = NULL;
      lista->ante = NULL;
   }
 else
   {
  nu->sgte = lista;
  nu->ante = lista->ante;
  lista->ante = nu;
      lista = nu;
   }
}
void InsertaAlFinal(Tlista&lista,int valor)
{
 Tlista pos,nu;
   nu  = new (struct nodo);
   nu->nro = valor;
   pos = lista;
   if(lista == NULL)
   {
  lista = nu;
      lista->sgte = NULL;
      lista->ante = NULL;
   }
 else
   {
  while (pos->sgte!= NULL) { pos = pos->sgte; }
  nu->sgte = pos->sgte;
  pos->sgte = nu;
      nu->ante = pos;
   }
}
bool Busqueda(Tlista lista,int num,int& pos)
{
 Tlista aux = lista;
 pos=0;
   while (aux != NULL)
   {
  if (aux->nro == num)
      {
   return true;
      }
  aux = aux->sgte;
  pos++;
   }
 return false;
}
void EliminarLista(Tlista& lista)
{
 lista = NULL;
}
void Imprimir(Tlista lista)
{
 Tlista aux = lista;
   int i = 0;
   while (lista != NULL)
   {
  cout<<"["<<i<<"] = "<<lista->nro<<endl;
  lista = lista->sgte;
  i++;
   }
 if(i==0)
   {
  cout<<"nLa lista no tiene datos ... PressEnter";
   }
}
void EliminaAlInicio(Tlista& lista)
{
  if(lista!=NULL)  //Siempre que la lista tenga un valor
   {
  lista=lista->sgte;
      cout<<"nEliminado ... PressEnter ";
   }
 else
   {
  cout<<"nLa lista no tiene datos ... PressEnter ";
   }
}
void EliminaElemento(Tlista&lista,int ele)
{
 Tlista aux=lista;
 bool existe=false;
 while (aux!= NULL)
   {
  if (aux->nro == ele)
    {
     if(aux->ante == NULL &&aux->sgte == NULL)//Si el elemento se encuentra al inicio y es el unico
    {
    aux = NULL;
        lista = aux;
            existe=true;
        goto fin;
     }
     else
      {
        if(aux->ante == NULL)   //Si el elemento está al inicio
    {
     lista->sgte->ante = NULL;
           lista = lista->sgte;
    }
        else
        {
     if(aux->sgte == NULL) //Si el elemento se encuentra al final
     {
      aux->ante->sgte = NULL;
      aux = aux->ante;
     }
     else                 //Si el elemento se encuentra en otra posición
           {
      aux->ante->sgte = aux->sgte;
      aux->sgte->ante = aux->ante;
            aux = aux->ante;
     }
        }
     }
     existe = true;
  }
  aux = aux->sgte;
   }
 fin:
 if(existe)
   {
  cout<<"n¡¡ELEMENTO ELIMINADO!! ... PressEnter";
   }
 else
   {
  cout<<"n¡El Elemento NO EXISTE en la Lista! ... PressEnter";
   }
}
void Ordenar(Tlista& lista)
{
 Tlista aux1,aux2;
 if(lista!=NULL)
   {
  aux1 = lista, aux2 = lista->sgte;
  int cambiar;
  while (aux1 != NULL)
      {
   aux2 = aux1->sgte;
   while (aux2 != NULL)
   {
    if (aux1->nro>= aux2->nro)
    {
     cambiar = aux1->nro;
     aux1->nro = aux2->nro;
     aux2->nro = cambiar;
    }
    aux2 = aux2->sgte;
   }
   aux1 = aux1->sgte;
  }
   }
}

NOTA:

+ Los ejercicios desarrollados en este post son a través del programa Borland. Para obtener el programa, clic en el siguiente enlace: Descargar Borland

Continuando con Listas Dobles, les comparto el siguiente post: Inserta, busca, elimina y muestra elementos

LIBROS

Contamos con varios libros para aprender las herramientas de Word, PowerPoint y Excel. Puedes comprarlo de forma digital en PDF o en físico a través de nuestra tienda en Amazon

Videos del Canal de Youtube

«…Encuentra plantillas bonitas, creativas y originales para tus presentaciones en PowerPoint…»

JANE DOE

«…Tecpro Digital es una plataforma que brinda plantillas editables en programas de Ofimática…»

JOHN DOE

«…Conoce las herramientas de Word, PowerPoint y Excel a través de los libros que se brinda en nuestra web…»

MARIA DOE

Síguenes en nuestras redes sociales

Deseas contactar con nosotros, puedes usar nuestros canales en las redes sociales para ver nuestro trabajo y los últimos tutoriales que vamos subiendo al sitio web.