6. (10 分) 使用 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));

// 實作以下敘述

// 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, get the value of deleting node

free(deleting_node);

return value;

}