题解 | #包含min函数的栈#
包含min函数的栈
https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param value int整型 * @return 无 */ typedef struct StackNode //栈的数据域 { int data; struct StackNode *next; }StackNode; typedef struct pStack //栈的指针域 { StackNode *top; StackNode *tail; }pStack; pStack pstack={NULL, NULL}; //指向栈的指针 void push(int value ) { // write code here StackNode *D = NULL; D = (StackNode*)calloc(1, sizeof(StackNode)); D->data = value; D->next = pstack.top; pstack.top = D; if (pstack.tail == NULL) { pstack.tail = pstack.top; } } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param 无 * @return 无 */ void pop() { // write code here StackNode *P = NULL; P = pstack.top->next; free (pstack.top); pstack.top = P; } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param 无 * @return int整型 */ int top() { // write code here return pstack.top->data; } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param 无 * @return int整型 */ int min() { // write code here int i = pstack.top->data; StackNode *p = pstack.top->next; while (p) { if (i > p->data) { i = p->data; } p = p->next; } return i; }