做楼房信息网站的作用,卦神岭做网站,苏州互联网企业,福田瑞沃自卸车官网1. 两个栈实现队列 实现一 思路 s1是入栈的#xff0c;s2是出栈的。
入队列#xff0c;直接压到s1是就行了出队列#xff0c;先把s1中的元素全部出栈压入到s2中#xff0c;弹出s2中的栈顶元素#xff1b;再把s2的所有元素全部压回s1中 实现二 思路 s1是入栈的#xff0c…1. 两个栈实现队列 实现一 思路 s1是入栈的s2是出栈的。
入队列直接压到s1是就行了出队列先把s1中的元素全部出栈压入到s2中弹出s2中的栈顶元素再把s2的所有元素全部压回s1中 实现二 思路 s1是入栈的s2是出栈的。保证所有元素都在一个栈里面
入队列时如果s1为空把s2中所有的元素倒出压到s1中否则直接压入s1出队列时如果s2不为空把s2中的栈顶元素直接弹出否则把s1的所有元素全部弹出压入s2中再弹出s2的栈顶元素 比较与实现一相比较出队列时不必每次都捣鼓了。 实现三 思路 s1是入栈的s2是出栈的。
入队列直接压入s1即可出队列如果s2不为空把s2中的栈顶元素直接弹出否则把s1的所有元素全部弹出压入s2中再弹出s2的栈顶元素 比较 与实现二相比较入队直接入即可感觉此时已是最优。
2. 两个队列实现栈实现一 思路 q1是专职进出栈的q2只是个中转站
入栈直接入队列q1即可出栈把q1的除最后一个元素外全部转移到队q2中,然后把刚才剩下q1中的那个元素出队列。之后把q2中的全部元素转移回q1中 图示 实现二 思路 q1是专职进出栈的q2只是个中转站。元素集中存放在一个栈中但不是指定(q1 或 q2)。 定义两个指针pushtmp:指向专门进栈的队列q1 tmp指向临时作为中转站的另一个栈q2
入栈直接入pushtmp所指队列即可出栈把pushtmp的除最后一个元素外全部转移到队列tmp中,然后把刚才剩下q1中的那个元素出队列 比较 实现二出栈后就不用转移回原来的栈了图示最后一步这样减少了转移的次数。