(二)用双栈实现队列

来源:互联网 发布:mac软件免费下载平台 编辑:程序博客网 时间:2024/05/21 17:57

分析:队列是FIFO,而栈是FILO。这里考虑两个栈,mStack1和mStack2。push_back()操作时假设都push到mStack1中,如果需要front()操作或者pop_front()操作时,应该拿到mStack1中栈底的元素。这时就用到mStack2,把mStack1中的元素全部push到mStack2中,然后再进行mStack2的top()和pop()操作。理论上分析如果,每次pop_front()的都是最早进入的,而新加入元素都在mStack1的最上面,pop_front()的时候是最后的元素。

 

C++实现: