1,使用两个栈a b ,假定a是负责push操作,使用一个变量back_elem来存储最后的元素。2,实现队列的push操作,每次添加操作,都有相应的对栈a进行添加元素,并且对back_elem赋值,实现队列pop操作,每次进行删除操作因为b负责pop操作:首先判断栈a是否为空?如果b为空,则判断a是否为空? 如果a也为空, 则输出错误信息,此时队列为空。如果a不为空, 则将栈a中的所有数据存储到b中。执行b.push(a.top()), b.pop(). 然后在对栈b执行,b.pop()操作,将队列的头元素删除如果b不为空, 则直接对b执行 b.pop()操作。(4)实现队列的front()操作,方法如pop操作相同,只是在最后一步使用b.top()返回值。(5)实现队列的back()操作,因为我们变量back_elem保存着最后一个输入的数据,故直接将其返回。(6)实现队列的size()操作,和empty()操作,就是对a b分别执行操作。
|