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

请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈。该数据结构应支持与普通栈相同的push和pop操作。

给定一个操作序列int[][2] ope(C++为vector&ltvector&ltint>>),每个操作的第一个数代表操作类型,若为1,则为push操作,后一个数为应push的数字;若为2,则为pop操作,后一个数无意义。请返回一个int[][](C++为vector&ltvector&ltint>>),为完成所有操作后的SetOfStacks,顺序应为从下到上,默认初始的SetOfStacks为空。保证数据合法。

头像 ddzxlining
发表于 2020-05-06 12:59:28
将问题转化为单个栈的出栈入栈(只对temp栈进行操作。),然后考虑栈满的时候创建新栈,栈空的时候取集合栈的栈顶。 class SetOfStacks { public: vector<vector<int> > setOfStacks(vector<vector 展开全文