首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
请利用两个栈s1和s2来模拟一个队列。已知栈的三个运算定义如下: (1)push(st,x):元素x入st栈; (2)pop(st,x):st栈顶元素出栈,赋给变量x; (3)sempty(st):判st栈是否为空。 那么如
请利用两个栈s1和s2来模拟一个队列。已知栈的三个运算定义如下: (1)push(st,x):元素x入st栈; (2)pop(st,x):st栈顶元素出栈,赋给变量x; (3)sempty(st):判st栈是否为空。 那么如
admin
2016-03-29
34
问题
请利用两个栈s1和s2来模拟一个队列。已知栈的三个运算定义如下:
(1)push(st,x):元素x入st栈;
(2)pop(st,x):st栈顶元素出栈,赋给变量x;
(3)sempty(st):判st栈是否为空。
那么如何利用栈的运算来实现该队列的三个运算:
(1)enqueue:插入一个元素入队列;
(2)dequeue:删除一个元素出队列;
(3)queue_empty:判队列为空。
(请写明算法的思想及必要的注释。)
选项
答案
栈的特点是后进先出,队列的特点是先进先出。所以,用两个栈sl和s2模拟一个队列时,s1作输入栈,逐个元素压栈,以此模拟队列元素的入队。当需要出队时,将栈s1退栈并逐个压入栈s2中,s1中最先入栈的元素,在s2中处于栈顶。s2退栈,相当于队列的出队,实现了先进先出。显然,只有栈s2为空且s1也为空,才算是队列空。 (1)int enqueue(stack sl,elemtp x){ //sl是容量为n的栈,栈中元素类型是elemtp。本算法将X入栈, //若入栈成功返回1,否则返回0 if(topl==n&&!sempty(s2)) //topl是栈s1的栈顶指针,是全局变量 {printf(”栈满”);return(0);} //sl满s2非空,这时sl不能再入栈 if(topl==n&&sempty(s2)) //若s2为空,先将sl退栈,元素再压栈到s2 {while(!sempty(s1)){pop(sl,x);push(s2,x);} push(sl,x):return(1); //x入栈,实现了队列元素的入队 } (2)void dequeue(stack s2,s1){ //s2是输出栈,本算法将s2栈项元素退栈,实现队列元素的出队 if(!sempty(s2)) //栈s2不空,则直接出队 {pop(s2,x);printf(”出队元素为”,x);} else //处理s2空栈 if(sempty(s1)){printf(”队列空”);exit(0);} //若输入栈也为空,则判定队空 else //先将栈s1倒入s2中,再作出队操作 {while(!sempty(s1)){pop(sl,X);push(s2,x);} pop(s2,x); //s2退栈相当于队列出队 printf(”出队元素”,x): } (3)int queue_empty(){ //本算法判用栈sI和s2模拟的队列是否为空 if(sempty(s1)&&sempty(s2))return(1); //队列空 else return(0); //队列不空 }
解析
转载请注明原文地址:https://kaotiyun.com/show/knRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
标志着国民党反动统治建立的事件是()。
红色割据和军阀割据的本质区别是()。
下列选项中,达成于1913年进行的西姆拉会议期间的有()①《西姆拉条约》②划定“麦克马洪线”③《中英会议藏印条约》④《中英续订藏印条约》
前期的新文化运动不能给灾难深重的中国指明真正的出路,主要是由于()。
红色割据和军阀割据的本质区别是()。
材料一材科二(戈尔巴乔夫政府)在制定改革政策方针中存在三个严重问题:第一,仍然以优先发展重工业和机器制造业为主的“加速发展战略”作为发展资本密集型产业的主要战略,已不符合时代潮流。现代经济结构已由资本密集型向技术密集型发展……苏联的经济改革对
三国时期,魏、蜀、吴三国灭亡的历史顺序是()。
设磁盘的扇区大小为4KB,磁盘转速为15000r/min,磁盘平均寻道时间为4ms,最大数据传输速率为40MB/s,磁盘控制器开销时问为1ms,计算读写一个扇区所需平均时间(不考虑I/O请求队列中的等待时间)。
桌上有一空盘,只允许放入一个水果。爸爸专向盘中放苹果,妈妈专向盘中放橘子,女儿专等着吃盘中的苹果,儿子专等着吃盘中的橘子。试用P,V原语实现爸爸、妈妈、儿子和女儿间能同步的程序。
以下关于图的说法正确的是()。.I在一个有向图的拓扑序列中,若顶点a在顶点b之前,则图中必有一条弧Ⅱ若一个有向图的邻接矩阵中对角线一下元素均为O,则该图的拓扑序列必定存在Ⅲ在.AOE网中一定只有一条
随机试题
下列哪项贫血是由于红细胞破坏增多所致
可由肾小球滤过但不能被肾小管重吸收和分泌的物质可用于测定
下列选项中,不符合五味子收敛固涩作用的是
男性,20岁,骑车被撞倒,右肩着地,X线片提示右锁骨中1/3骨折,断端移位明显。遵循骨折复位原则,在进行手法闭合复位时应将右上肢向什么方向牵引
A、自汗B、盗汗C、大汗D、半身汗E、头汗因气虚卫阳不固所致的汗出是()
人身检查的定义是采用()的仪器和手工相结合的方式,对旅客人身进行安全检查。
根据城镇土地使用税法律制度的规定,下列各项中,属于城镇土地使用税征税范围的有()。(2017年)
Maybeunemploymentisn’tsobadafterall.Anewstudysaysthathavingademanding,unstableandthanklessjobmaymakeyoueve
PlayingorganizedsportsissuchacommonexperienceintheUnitedStatesthatmanychildrenandteenagerstakethemforgranted
面向对象方法中,继承是指( )。
最新回复
(
0
)