Post

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.