3. (20 分) 使用 linked list 實作 stack,運用以下 C 語言程式: 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)); // (A) 實作以下敘述 // add new_node to stack by top } int pop (node **top) { // assume top is not null int value; node *deleting_node = *top; // (B) 實作以下敘述 // remove the deleting node from stack, get the value of deleting node free(deleting_node); return value; }