酷代码 AI
菜单
服务商

C++:用一维数组实现双栈的代码解析与示例

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]++]; } } ######[AI写代码神器 | 643点数解答 | 2024-11-29 10:01:30]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]