elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Listas en c++ en: 15 Mayo 2013, 06:19 am
//Bueno lo que pasa es que tengo un codigo de listas en c++ y no se como podria añadir 2 procesos mas que son eliminar un nodo de la lista y buscar si existe un elemento en la lista
//por ahora el codigo solo crea nodos, los llena, muestra sus valores y realiza el promedio de todos los valores de la lista


#include<iostream> //librerias
#include<stdlib.h>

using namespace std;

struct nodo{ //definir la estructura del nodo
       int dato;
       struct nodo *siguiente;
};

main()
{
      struct nodo *cabeza;
      struct nodo *nuevo;
      struct nodo *aux;
      cabeza=NULL;
      int valor; //el valor que se va a almacenar
      int recorrer=0; //
      int total_Nodos; //cantidad de nodos que deseamos crear
      int cont=0;
      float acum=0, prom;
     
      cout<<"\n\n\n\t\t'''Programa Para ingresar Lista'''";
      cout<<"\n\n\n\t\tDigite la cantidad de Nodos de la Lista: ";
      cin>>total_Nodos; //captura la cantidad de nodo aque desea ingresar en la lista
     
      for(int x=1; x<=total_Nodos; x++)
      {
              nuevo=(struct nodo*)malloc(sizeof(struct nodo)); //instruccion que indica a la memoria la reserva de espacio en memoria para la creacion de nodos
              if(nuevo!=NULL) //pregunta si el nodo si se creo en memoria
              {
                       nuevo->siguiente=cabeza; //
                       cout<<"\n\tDigite el dato #"<<x<<": ";
                       cin>>valor; //lee el valor que ingresaron
                       nuevo->dato=valor; //se asigna el valor al nodo en su campo dato
                       cabeza=nuevo; //la cabeza apunta al nuevo nodo
                       acum=acum+valor;
                       cont=cont+1;
              }
              prom=acum/cont;
      }
     
                                               
      cout<<"\nDesea ver los datos de la Lista SI(1)/NO(0)";
      cin>>total_Nodos; //reutilizacion de la variables para visualizar los nodos
     
      if(total_Nodos ==1) //opcion1
      {
                     system("cls");
                     while(nuevo!=NULL) //
                     {
                                       recorrer++; //funciona como contador para re
                                       cout<<"\n\tEl dato del nodo" <<recorrer<<"->"<<nuevo->dato;
                                       nuevo=nuevo->siguiente; //pasa al nodo siguiente
                     }
                     cout<<"\n\n\tEl Promedio de los valores de la lista es "<<prom<<"\n";
      }
      else
      {
          system("cls");
          cout<<"\n\n\n\t\t'Gracias por usar el programa'";
     
      }
      system("pause");
}


Espero puedan ayudarme, Muchas Gracias Saludos!
2  Programación / Programación C/C++ / desarrollo de pila, error en función apilar en: 28 Abril 2013, 01:34 am
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define tamax 10

using namespace::std;

struct pila
{
       int info[10];
       int tope;
       int valor;
};

void crear_pila(pila &p);
void pila_vacia(pila &p);
void apilar(pila &p, int valor);
void desapilar(pila &p);
void mostar_pila(pila &p);
int sw =0;

void menu()
{
    system("cls");
    cout<<"\n\t1_Crear Pila           ";
    cout<<"\n\t2_Apilar               ";
    cout<<"\n\t3_Desapilar            ";
    cout<<"\n\t4_Mostrar Pila         ";
    cout<<"\n\t5_Salir               \n";
    cout<<"\n\tElija Opcion a realizar:  ";
}

int main()
{   
      int opc, valor;
       struct pila p;

       do
       {
         menu(); 
         cin>> opc;
          switch(opc)
          {                   
             case 1:crear_pila(p);break;
             
             case 2:
                  system("cls");
                  if(sw == 0)
                  {
                  system("cls");           
                  cout<<"\n\n\n\n\t\t\tDebe Crear Pila\n";
                  system("PAUSE");break;
                  }
                  cout<<"\n\n\n\n\t\tIngrese un numero Entero: ";
                  cin>>valor;
                  apilar(p,valor);break;
                 
             case 3: 
                  if(sw == 0)
                  {
                       system("cls");           
                       cout<<"\n\n\n\n\t\tLa Pila Esta Vacia no puede desapilar\n";
                       system("PAUSE");
                  }
                  desapilar(p);break;
                 
             case 4:
                    if(sw == 0)
                  {
                  system("cls");           
                  cout<<"\n\n\n\n\t\tLa Pila esta vacia no se puede mostrar\n";
                  system("PAUSE");
                  }
                  mostar_pila(p);break;
          }     
      }while(opc!=5);
      return 0;
}

void crear_pila(pila &p)
{
      system("cls");
      for(int x=0;x<10;x++)
      {
       p.info
  • =0;
      }
     
      sw= 1;
      cout<<"\n\n\n\n\t\tLa Pila Se ha sido Creada\n";
      system("pause");       
}

void pila_vacia(pila &p)
{
      p.tope=0;
}

void apilar(pila &p, int valor)
{
            if(p.tope == tamax)
            {
              system("cls");
              cout<<"\n\n\n\n\t\tLa Pila Esta Llena\n";
              system("PAUSE");
            }
            else
            {
                system("cls");
                p.tope++;
                p.info[p.tope] = valor;               
                cout<<"\n\n\n\n\t\tEl Elemento: "<<valor<<" ha sido Guardado\n" ;
                system("PAUSE");                 
            }     
}

void desapilar(pila &p)
{
     int dato;
     if(sw=0)
     {
          sw= 1;
          system("cls");
          p.tope--;
          cout<<"\n\n\n\n\tSe ha eleminado el dato "<<dato<<"\n";
          system("PAUSE");     
     }
}

void mostar_pila(pila &p)
{
      system("cls");
      if(p.tope > 0)
      {     
            sw= 1;                 
      }
      else
      {
         for(int j =0;j<tamax;j++)
         {
                 cout<<"\n\t"<<p.info[j]<<"\n\t";
         
         }
          cout<<"\n\n\n\tElementos de la Pila\n";
          system("PAUSE");
         
      }     
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines