When we have :
struct node {
char...
int....
struct node *....
}
typedef struct node Node;
and then we have a function like this:
int function(Node f){...}
What is this f ?
f is an input argument of the type Node. The type Node is synonym of the type struct node.
Node is.In the statement
typedef struct node Node;
you are giving alias name of struct node as Node by using typedef.
So in the definition of function()
int function(Node f){...}
f is nothing but variable of struct node type.
Also you can see the typedef declaration and meanings here http://en.cppreference.com/w/c/language/typedef
fis a variable of typeNode, which is essentially same as the typestruct node.