Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: josue_tux en 14 Marzo 2011, 06:04 AM

Título: aclaracion de listas dobles enlazadas
Publicado por: josue_tux en 14 Marzo 2011, 06:04 AM
Bueno la mayoria de libros trata las listas doble de la siguiente manera:


struct elemento
   {

     struct elemento *siguiente, *anterior;
   }



me encontre una separata con un codigo que no declaraba estos dos punteros si no que estos eran funciones es el equivalente esto a lo anteriro les agradeceria su opinion.



#define MAX 100

// tipos de datos
typedef int  posicion;
typedef int  tipo;
typedef int  logico;
typedef int datos;
typedef struct Lista;
typedef struct boton;
typedef struct Lista
{
  struct boton e[MAX];
  int cont;
};

// prototipos de funciones
void inicializa(struct Lista *L);
logico vacia(struct Lista L);
logico llena(struct Lista L);
void inserta(struct Lista *L, posicion p, struct boton e);
posicion primera(struct Lista L);
posicion ultima(struct Lista L);
datos recuperar(struct Lista L, posicion p);
posicion fin (struct Lista L);
posicion siguiente(struct Lista L, posicion p);
posicion anterior(struct Lista L, posicion p);

posicion primera(struct Lista L)
{
if(vacia(L)==1)
return posicion_invalida;

return 0;
}

posicion ultima(struct Lista L)
{
  return L.cont;
}

Título: Re: aclaracion de listas dobles enlazadas
Publicado por: Akai en 14 Marzo 2011, 13:31 PM
No, no son lo mismo.

Tu primer fragmento propone una estructura dinámica, el segundo, supone una estructura estática utilizando un vector. (Fíjate en la declaración del struct Lista)
Título: Re: aclaracion de listas dobles enlazadas
Publicado por: Don Pollo en 15 Marzo 2011, 14:41 PM
Akai dónde está la declaración de la struct Lista en el 2º código? Yo sólo veo la de "boton"  :-\