4. (20 分) 使用 linked list 完成以下 stack 程式
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));
// Your answer starts here
// add new_node to stack by top
}
int pop (node **top) { // assume top is not null
int value;
node deleting_node = top;
// Your answer starts here
// remove the deleting node from stack, get the value of deleting node
free(deleting_node);
return value;
}