Вы можете ввести их одновременно:
typedef struct Node {
int data;
struct Node *nextptr;
} node, *node_ptr;
Возможно, это трудно понять, но это во многом связано с тем, почему синтаксис объявления C работает так, как он работает (т.е. почему int* foo, bar;
объявляет bar
как int, а не int*
Или вы можете использовать существующий typedef:
typedef struct Node {
int data;
struct Node *nextptr;
} node;
typedef node* node_ptr;
Или вы можете сделать это с нуля, так же, как если бы вы печатали что-нибудь еще:
typedef struct Node* node_ptr;