Escribo una lista enlazada en C, el siguiente código representa mi definición de nodo.¿Cómo se define una estructura typedef que contiene punteros a sí misma?
typedef struct {
int value;
struct Node* next;
struct Node* prev;
} Node;
entiendo (o piensan que lo hago) que struct Node
no es el mismo que typedef struct Node
. De acuerdo, mi código se compila y se ejecuta como se supone que debe hacerlo, sin embargo, recibo muchas advertencias al asignar next
y prev
(advertencia: asignación del tipo de puntero incompatible). Supongo que esto tiene que ver con la forma en que los estoy definiendo en la estructura del Nodo. he subido la fuente completa here
Por lo tanto, si es ése el problema, ¿cómo debería definir next
y prev
dentro del typedef struct Node
?
Me preocupaba que esto pudiera ser un reenvío, pero no podía encontrar lo que estaba buscando. Gracias.
Su lista vinculada me parece muy extraña. Cuando tienes prev y next entonces ¿por qué necesitas cabeza y cola? Encuentre una buena lista enlazada en c y aprenda de ella. Recomendaría la biblioteca de Apache Runtime. Creo que tiene una lista vinculada. – frast
que tiene punteros a la cabeza y la cola hacen agregar y anteponer O (1) en lugar de O (n). Avísame si ves otros errores, ya que esto es principalmente solo un ejercicio para mantener mis habilidades C algo frescas después de todos estos años de Java ... –