Foro de elhacker.net

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:

Código:
 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.

Código:

#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"  :-\