int main() { dualstack s; s.stack = new int[maxsize]; s.top[0] = -1; s.top[1] = maxsize; push(s, 0, 1); push(s, 1, 2); push(s, 0, 3); push(s, 1, 4); cout << pop(s, 0) << endl; cout << pop(s, 1) << endl; cout << pop(s, 0) << endl; cout << pop(s, 1) << endl; delete[] s.stack; return 0; } void push(dualstack &s, int i, int x) { if (s.top[1] - s.top[0] == 1) { cout << "栈满" << endl; return; } if (i == 0) { s.stack[++s.top[0]] = x; } else if (i == 1) { s.stack[--s.top[1]] = x; } } int pop(dualstack &s, int i) { if (i == 0) { if (s.top[0] == -1) { cout << "0栈空" << endl; return 0; } return s.stack[s.top[0]--]; } else if (i == 1) { if (s.top[1] == maxsize) { cout << "1栈空" << endl; return 0; } return s.stack[s.top[1]++]; } } [2024-11-29 10:01:30 | AI写代码神器 | 643点数解答]