[C con Clase] listas simples

felician draghici felix1900toamna en yahoo.es
Vie Mar 22 16:39:15 CET 2013


Hola estoy aprendiendo a programar en c/c++ y no se como volver a main en este ejercicio que he hecho con el return de la funcion de insertar numero.No se como utilizarlo y que debe retornar , si alguien me puede echar una mano.saludos
 
 
/*Ejercicio listas simples
  -Insertar numeros en la lista
  -Mostrar numeros de la lista
  -Borrar
  -Modificar
  -Consultar */
  
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

struct Nodo{
          int numero;
          Nodo *sig;
       }; 
  
struct Nodo * inserta_elemento(struct Nodo *,int n);
struct Nodo * borra_elemento(struct Nodo *,int);
struct Nodo * eliminar_lista(struct Nodo *,int);
struct Nodo * modifica_elemento(struct Nodo *,int);
void consulta(struct Nodo *);
void listar_lista(struct Nodo *);
        
int main (void)
{
    int opcion,n;
    Nodo *aux,*inicio,*actual;
    
    printf("\n\n*** Teclee una opcion: \n\n\n");
    printf("\n1) Insertar un elemento en la lista");
    printf("\n2) Borrar elemento de la lista");
    printf("\n3) Eliminar el contenido de la lista");
    printf("\n4) Modificar un numero en la lista");
    printf("\n5) Mostrar el contenido de la lista");
    printf("\n6) Consulta de un numero en la lista");
    printf("\n7) Salir del programa\n\n--->");
    scanf("%d",&opcion);
    fflush(stdin);
    
    
    switch(opcion)
    {
       case 1:system("cls");
            inicio=inserta_elemento(inicio,n);//insertar elemento
            break;
       case 2:inicio=borra_elemento(inicio,n);//borrar elemento
            break;
       case 3:inicio=eliminar_lista(inicio,n);//eliminar contenido lista
            break;
       case 4:inicio=modifica_elemento(inicio,n);//modificar numero en lista
            break;
       case 5:listar_lista(inicio);//listar lista
            break;
       case 6:consulta(inicio);//consultar elemento
            break;
       case 7:break;
    }              
    
getch();    
}
struct Nodo* inserta_elemento(struct Nodo *inicio,int n)
{
    struct Nodo *aux,*actual;
    do
    {
      printf("\nTeclea un numero: ");
      scanf("%d",&n);
      fflush(stdin);
      inicio=NULL;
      aux=new struct Nodo;
      aux->numero=n;
      aux->sig=NULL;
    
      printf("%d",aux->numero);
      if(inicio==NULL)
      {
         inicio=aux;
      }
      else
      {
         if(inicio->numero < n) // si el numero leido es < que el primero
         {
            aux->sig=inicio;
            inicio=aux;
         }
         else
         {
            actual=inicio;
            while(actual->sig!=NULL && actual->sig->numero < n)
            {
               actual=actual->sig;
            } 
            aux->sig=actual->sig;
            actual->sig=aux;
         }
      } 
    
    }while(n != 0);
    
   return inicio;
}
 

struct Nodo * borra_elemento(struct Nodo *,int)
{
    struct Nodo *inicio,*aux,*actual;
}
struct Nodo * eliminar_lista(struct Nodo *,int)
{
    struct Nodo *inicio,*aux,*actual;
}
struct Nodo * modifica_elemento(struct Nodo *,int)
{
    struct Nodo *inicio,*aux,*actual;
}
void consulta(struct Nodo *)
{
}
void listar_lista(struct Nodo *)
{
}
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130322/e23a48d0/attachment.html>


Más información sobre la lista de distribución Cconclase