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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Lista Genérica en c en: 10 Octubre 2014, 18:25 pm
que les parece mi implementación?

Código:


typedef enum _TIPO
{

  INT = 0,
  FLOAT,
  STRING

} TIPO;

typedef struct _NODO_LISTA
{

  TIPO   tipo;

  int    dato_int;
  float  dato_float;

  char   *dato_s;

  struct NODO_LISTA *sig;

} NODO_LISTA;


typedef NODO_LISTA *ListaGenerica;

ListaGenerica LGListaVacia();

ListaGenerica LGApilarInt(ListaGenerica l, int var);

ListaGenerica LGApilarFloat(ListaGenerica l, float var);

ListaGenerica LGApilarString(ListaGenerica l, char* var);

void LGImprimirEnPantalla(ListaGenerica l);



--

Código:
#include <stdio.h>
#include "ListaGenerica.h"

ListaGenerica LGListaVacia()
{
  return NULL;
}

ListaGenerica LGApilarInt(ListaGenerica l, int var)
{
  ListaGenerica p;
  p = (ListaGenerica)malloc(sizeof(NODO_LISTA));
  p->dato_int = var;
  p->tipo = INT;

  if(l==NULL){
    p->sig = NULL;
  }else{
    p->sig = l;
  }

  return p;
}

ListaGenerica LGApilarFloat(ListaGenerica l, float var)
{
  ListaGenerica p;
  p = (ListaGenerica)malloc(sizeof(NODO_LISTA));
  p->dato_float = var;
  p->tipo = FLOAT;

  if(l==NULL){
    p->sig = NULL;
  }else{
    p->sig = l;
  }

  return p;
}

ListaGenerica LGApilarString(ListaGenerica l, char *var)
{
  ListaGenerica p;
  p = (ListaGenerica)malloc(sizeof(NODO_LISTA));
  p->dato_s = var;
  p->tipo = STRING;

  if(l==NULL){
    p->sig = NULL;
  }else{
    p->sig = l;
  }

  return p;
}

void LGImprimirEnPantalla(ListaGenerica l)
{
  putchar('[');
  while(l != NULL)
  {
    if(l->tipo==INT)
      printf("%d", l->dato_int);

    else if(l->tipo==FLOAT)
      printf("%f", l->dato_float);

    else if (l->tipo==STRING)
      printf("%s", l->dato_s);

    if (l->sig != NULL)
      printf(", ");

    l=l->sig;
  }
  putchar(']');
}



Código:
#include "ListaGenerica.h"

int main()
{
  ListaGenerica l;
  l = LGListaVacia();
  l = LGApilarInt(l, 2);
  l = LGApilarInt(l, 20);
  l = LGApilarInt(l, 21);
  l = LGApilarInt(l, 12);
  l = LGApilarInt(l, 22);
  l = LGApilarFloat(l, 42.41);
  l = LGApilarFloat(l, 242.41);
  l = LGApilarFloat(l, 342.41);
  l = LGApilarString(l, "Pila");
  l = LGApilarString(l, "Generica");
  l = LGApilarString(l, "Anno 2014");

  LGImprimirEnPantalla(l);

  return 0;
}

2  Programación / Programación C/C++ / Consulta argumentos en: 20 Diciembre 2013, 21:12 pm
hay ventajas en hacer este tipo de declaraciones ?

Código:
static int
compare (const void *a, const void *b)
{
  return strcmp (*(char **) a, *(char **) b);
}



Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines