首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
请利用两个栈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
38
问题
请利用两个栈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
学硕统考专业
相关试题推荐
印度孔雀帝国时代,就土地占有情况而言,占全国土地的绝大部分的是()。
下列现象由中国近代社会的半殖民地半封建性质所决定的有()。①民族资产阶级提不出彻底的民主革命纲领②中国无产阶级先于中国民族资产阶级而产生③帝国主义在华的“租界”林立④中国革命必须走农村包围城市的道路
1543年发表解剖学专著《人体结构论》的是()。
一组记录的关键字为{25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序表,用归并排序方法对该序列进行一趟归并后的结果是()。
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
桌上有一空盘,只允许放入一个水果。爸爸专向盘中放苹果,妈妈专向盘中放橘子,女儿专等着吃盘中的苹果,儿子专等着吃盘中的橘子。试用P,V原语实现爸爸、妈妈、儿子和女儿间能同步的程序。
已知散列函数为H(key)=key%11,处理冲突的方法为二次探测法,探测的序列为:1,-1,4,-4,…,j2,-j2(j<=m/2)。当di>0时,Hi=(H(key)+di)%m当di<0时,Hi=(H(key)+di+m)%m散列
举例说明P、V操作为什么要求设计成原语(即对同一信号量上的操作必须互斥)。P(S)操作:S.value--;If(S.value<0){AddthisprocesstoS.L;Block();
循环队列用数组A[0..m~1]存放其元素值,已知其头尾指针分别为front和rear,则当前元素个数为()。
随机试题
关于社会因素影响健康的基本规律和特点,说法错误的是
根据深圳证券交易所的规定,ETF的申购、赎回清单不包括( )。
个人独资企业和合伙企业征收个人所得税的管理方法,下列说法正确的是()。
建立故障报告、分析和纠正措施系统的目的是保障故障信息的(),并及时利用故障信息对产品进行分析、改进,以实现产品的可靠性增长。
经济全球化对我国既有机遇,也是挑战。下列看法正确的是()。①要尽可能地避免经济全球化带来的影响②依据我国的经济实力推行贸易保护主义③要坚决维护我国的经济安全④我国既要参与区域经济合作,又要积极融入经济全球化
圆珠笔(签字笔、中性笔)是我们很熟悉的书写工具。在设计制造时,笔芯内的油墨量与金属笔嘴的寿命存在科学的对应关系,且笔芯上端通常都留有一小孔。关于这些设计的说法不正确的是()。
Thetermauthorityreferstotherightsinherentinamanagerialpositiontogiveordersandexpecttheorderstobefollowed.A
Writeanessayof160—200wordsbasedonthefollowingdrawing.Inyouressay,youshould1)describethedrawingbriefly,
关掉计算机的电源后,其中存储的数据立即丢失的存储器是()
Manyteachersbelievethattheresponsibilitiesforlearningliewiththestudent.Ifalongreadingassignmentisgiven,instru
最新回复
(
0
)