首页 > 试题广场 >

集合栈

[编程题]集合栈
  • 热度指数:15534 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

请实现一种数据结构SetOfStacks,由多个大小为size的栈组成,当前一个栈填满时,则新建一个栈,且也可以与普通栈一样拥有相同的push和pop操作。

现给定一个操作序列int[][2] ope(C++为vector&ltvector&ltint>>),若执行push操作则第一个数为1,第二个数为应push的数字;若执行pop操作,则第一个数为2,第二个数为空。返回值为int[][](C++为vector&ltvector&ltint>>),即为变动后的SetOfStacks,顺序从下到上,初始SetOfStacks为空,并保证数据合法。

头像 ddzxlining
发表于 2020-05-06 12:59:28
将问题转化为单个栈的出栈入栈(只对temp栈进行操作。),然后考虑栈满的时候创建新栈,栈空的时候取集合栈的栈顶。 class SetOfStacks { public: vector<vector<int> > setOfStacks(vector<vector 展开全文
头像 腾子你收了我吧😭
发表于 2024-03-01 01:25:36
//该题目的难点是容易忽略边界情况下的操作(栈满时的入栈,栈空时的出栈) class SetOfStacks { public: vector<vector<int> > setOfStacks(vector<vector<int> > ope 展开全文