4. Use linked list to implement a stack in C: (10%)
typedef struct node { int value; node *next;}
void push (node **top, int new_value) { // assume top is not null
node *new_node = (node *) malloc (sizeof (node));
// add new_node to stack by top
}
int pop (node **top) { // assume top is not null
int value;
node *deleting_node = *top;
// remove the deleting node from stack
free(deleting_node);
return value;
}