POJ-stack or queue

ゞ 浴缸里的玫瑰 2022-05-18 06:58 207阅读 0赞
  • POJ-stack or queue


题目链接:stack or queue

  • 思路与坑

要通过给定的一系列操作判断栈或是队列,那么定义一个栈模拟,如果每步都契合就算栈否则就队列

定义一个队列去模拟也一样

说坑啦~

一定要把数据全部读入,不能得到结果就跳出,这样会导致部分输入数据等到下次循环才被读入,造成







Runtime Error

所以如果得知不匹配,定义一个标记变量,先用小本本记录下来,等到当前测试组全部数据读入再判断栈或队列

  • 代码

    include

    include

    using namespace std;
    //数据结构与算法Mooc(第三章栈与队列3stack_or_queue )
    int main()
    {

    1. int Test_Time;
    2. int Op, Val;
    3. int Op_time;
    4. cin >> Test_Time;
    5. while (Test_Time--)
    6. {
    7. int Flag = 0;
    8. stack<int> Model;
    9. cin >> Op_time;
    10. while (Op_time--)
    11. {
    12. cin >> Op >> Val;
    13. if (Op == 1)
    14. {
    15. Model.push(Val);
    16. }
    17. else
    18. {
    19. if (Model.top() == Val)
    20. Model.pop();
    21. else
    22. {
    23. Flag = 1;
    24. }
    25. }
    26. }
    27. if (Flag)
    28. cout << "Queue" << endl;
    29. else
    30. cout << "Stack" << endl;
    31. }
    32. return 0;

    }

    //最坑莫过于如果判定不是栈后不能直接跳出,需要模拟整个过程,否则没有输入的数据会影响后面测试

发表评论

表情:
评论列表 (有 0 条评论,207人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++ queue(STL queue)

    只能访问 queue<T> 容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。 许多程序都使用了 queue 容器。queue 容器可

    相关 Queue

    定义 队列是一种特殊的线性表,先进先出,它只允许在表的前端进行删除,在表的后端进行插入。LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Qu

    相关 queue

    一.queue模版类的定义在<queue>头文件中。 queue与stack模版非常类似,queue模版也需要定义两个模版参数,一个是元素类型,一个是容器类型,元素类型是必要