typedef struct node
{
 int data;
 struct node *next;
}Node;  // ???

No entiendo por qué usamos el nodo después de la definición. ¿Qué función cumple? ¿Evita que la estructura apunte a sí misma infinitamente? La pregunta puede sonar estúpida, todavía estoy aprendiendo. Gracias.

2
hawkeyes21 15 nov. 2017 a las 07:36

2 respuestas

La mejor respuesta

Hay una Node después de la definición de estructura, porque hay una typedef antes.

La definición de estructura en sí misma sería la siguiente:

struct node
{
  int data;
  struct node *next;
};

Dado que esto es C ++, eso sería suficiente para referirse al tipo de estructura por el nombre node. Sin embargo, parece que la persona que lo escribió es originalmente de un entorno C o tiene como objetivo proporcionar un encabezado compatible con C. En C, tendrías que referirte como struct node, que algunos encuentran detallado. Entonces, la persona en cuestión proporcionó inmediatamente un alias de tipo. El código que presentó es equivalente a:

struct node
{
  int data;
  struct node *next;
};

typedef struct node Node;

Y nos permite referirnos al mismo tipo por el nombre Node, ya sea en C o C ++.

2
StoryTeller - Unslander Monica 15 nov. 2017 a las 06:08

Aquí, ha definido una estructura y declara una variable de estructura al mismo tiempo. La palabra clave typedef se usa para crear un tipo Node, que es del tipo struct node.

Entonces, puede usar fácilmente Node n1; en lugar de struct node n1.

0
msc 15 nov. 2017 a las 04:49