论文中引用网站中,上海知名网站,免费企业网站源码生成,网站开发软件下载文章目录 第三节进一步讨论栈和队列双端队列栈和队列的相互模拟使用栈来模拟队列类型定义入队出队判空#xff0c;判满 使用队列来模拟栈类型定义初始化清空操作判空#xff0c;判满栈长度输出入栈出栈避免出栈时间开销大的方法 第三节进一步讨论栈和队列 双端队列
假设你芷… 文章目录 第三节进一步讨论栈和队列双端队列栈和队列的相互模拟使用栈来模拟队列类型定义入队出队判空判满 使用队列来模拟栈类型定义初始化清空操作判空判满栈长度输出入栈出栈避免出栈时间开销大的方法 第三节进一步讨论栈和队列 双端队列
假设你芷在邮局排队等待办理某项业务。
当你排到最前面时邮局柜员要求你填一 张表。
你靠边去填表而让邮局柜员为下— 位排队的顾客服务。
在填完表后邮局柜员要服务的下— 个对象就是你。
这意味着你排到了队头而不需要从队尾再排一 次队。
类似地假如你去银行排队发现队伍很长所以决定离开这相当于你从队尾走掉了。
可以用队列模拟排队情形。
邮局排队的清形表明可以在队头出队也可以在队头入队。
银行排队的清形表明可以在队尾入队也可以在队尾出队。
在队头、队尾两端均能够进行入队、出队操作的队列称为双端队列如图3-21所示。 因为双端队列的两端都可以进行入队和出队操作所以两端不再分队头及队尾。
当将队列画成水平方式时可以将两端称为左端及右端。
当将队列画成垂直方式时可以将两端分别称为上端及下端。
当然也可以标记为端1和端2,或你喜欢的名字。
当将一 端的入队操作及另一 端的出队操作看作一 对操作时双端队列与普通队列是一 样的。
当将同一 端的入队橾作及出队橾作看作一 对橾作时双端队列与普通的栈是一 样的。
所以双端队列既有与队列一 样的橾作又有与栈一 样的操作。
从队列的角度来看这是双端队列
从栈的角度来看这是对底栈只是栈的底是通的即从— 个栈进入的元素可以从另— 个栈中出栈。
对双端队列两端的操作加以限制如其中一 端仅允许入队另一 端既允许入队又允许出队得到的是输入受限的双端队列。
类似地 一 端仅允许出队另一 端既允许入队又允许出队得到的是输出受限的双端队列。
栈和队列的相互模拟
栈与队列可以相互模拟。
具体来说使用两个栈能模拟出队列的行为
或使用两个队列能模拟出栈的行为。
使用栈来模拟队列 类型定义 入队 出队 判空判满 使用队列来模拟栈
类型定义 初始化 清空操作 判空判满 栈长度输出 入栈 出栈 避免出栈时间开销大的方法