C语言数据结构:利用两个顺序栈来实现一个列队的功能时遇到的问题

[复制链接]
查看11 | 回复1 | 2012-7-27 23:40:53 | 显示全部楼层 |阅读模式
假设s1、s2的深度都是3s1已满,从栈顶到栈低依次是:5、4、3s2非空,从栈顶到栈底依次是:1、2此时要想在入栈一个元素6的话,按照你的想法,得把s1的数据出栈到一个缓冲区,然后把缓冲区中,在原来s1栈底的3挪动到s2的栈顶,然后s1的4、5依次压回栈s1,然后s1就能够空出栈顶的一个位置了,对吧?但是,这个放置s1出栈元素的缓冲区。。。也得是一个栈结构吧?否则的话,你怎么知道s1向缓冲区出栈的u元素 顺序呢?这样就不是双栈模拟队列了,势必还得用到一个中间栈s3来满足你这种处理方式~因此,双栈模拟队列时,当栈s1满,栈s2非空时,栈s1再执行进栈操作。因为双栈是没有s3的~...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行