【剑指offer】栈和队列
栈Stack
定义Definition
栈: 只允在一端进行插入或删除操作的线性表。
特点: 后进先出
队列Queue
定义Definition
队列是一种先进先出的线性表。
它只允许在表的一端进行插入,而在另一端删除元素。在队列中允许插入的一端叫做队尾,允许删除的一端则称为队头。
特点: 先进先出
剑指offer
题目
用两个栈实现一个队列。
队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
示例1:
1
2
3
4 输入:
["CQueue","appendTail","deleteHead","deleteHead","deleteHead"]
[[],[3],[],[],[]]
输出:[null,null,3,-1,-1]示例2:
1
2
3
4 输入:
["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]
[[],[],[5],[2],[],[]]
输出:[null,-1,null,null,5,2]
理解Code
首先,我考虑在Python中实现这道题目.然后明白题目中要求定义两个函数, 分别实现在队列的添加和删除元素的功能.
这个队列还要求用两个栈来实现. Python中哪有现成的栈给我调用呢? 没有的,只能用列表来实现了.
而且appendTail这个函数是没有返回值的, 但是需要传递值.
deleteHead函数是需要有返回值的(如果队列为空则返回-1, 不为空则返回整个队列)
OK下面开始写代码!
Demo
1 | # 剑指Offer题目:(用两个栈实现队列 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.