hdu5818.栈合并
GPT找出的问题
动态数组问题:
struct stack
中的data[10]
是一个固定大小的数组,如果你想动态调整数组大小,可以使用std::vector<int>
替代。这样可以灵活处理栈的大小变化。merge
逻辑问题:vec2[p]=vec[j]
应为比较操作,而不是赋值操作,所以应改为vec2[p]==vec[j]
。pop
方法的返回问题:在pop
时,如果栈为空,你使用了return 0;
,这会直接退出程序。如果你只是想表示栈空则退出当次循环,可以用continue
跳过当前操作,或输出一些提示。其他小问题:
vec2.push_back(a.top)
应改为vec2.push_back(a.data[a.top])
,这样才能将栈顶元素保存到vec2
中。- 你在
merge
部分使用了flag
标志位,但没能正确地重置flag
,导致逻辑上不太准确
vector的动态方法:push_back(e)
This post is licensed under CC BY 4.0 by the author.