aclaracion de listas dobles enlazadas

Iniciado por josue_tux, 14 Marzo 2011, 06:04 AM

0 Miembros y 1 Visitante están viendo este tema.

josue_tux

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;
}


Akai

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)

Don Pollo

Akai dónde está la declaración de la struct Lista en el 2º código? Yo sólo veo la de "boton"  :-\