hi, i was wondering if someone could tell me what it means to use a 'struct' as its fields?

typedef struct Node {
struct Node * pre;
struct Node * next;
void * data;
} Node;

this would be used for a linked list. why do you add a 'struct' when declaring struct Node * pre;
thanks. clear help is much appreciated = )

and also, would omitting Node after the close parenthesis at the end make a difference? i normally see an array but if it isn't, does it make a difference to add it there or not? thanks.