c++栈的问题

 我来答
帐号已注销
2023-01-31 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:162万
展开全部

因为它说了依次轮流入栈和入队= =,所以就是A放栈,B放队,C放栈,D放队。

栈是先进后出,a在输出的第一个,那么肯定是在b进入前出来的,后面的bc也是同样情况,所以前六个是进a,出a,进b,出b,进c,出c,此时栈为空,后面输出序列为e,d,均在f之前,同理说明ed在f入栈之前出来的;

次序是 进d,进e,出e,出d,此时栈又空了,出栈为f,g,次序和输入一样,就是和a,b的一样,所以是进f,出f,进g,出g

全部过程:进a,出a,进b,出b,进c,出c,进d,进e,出e,出d,进f,出f,进g,出g。

扩展资料;

栈在程序的运行中有着举足轻重的作用。最重要的是栈保存了一个函数调用时所需要的维护信息,这常常称之为堆栈帧或者活动记录。

1、进栈(PUSH)算法

①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);

②置TOP=TOP+1(栈指针加1,指向进栈地址);

③S(TOP)=X,结束(X为新进栈的元素);

2、退栈(POP)算法

①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);

②X=S(TOP),(退栈后的元素赋给X):

③TOP=TOP-1,结束(栈指针减1,指向栈顶)。

参考资料来源:百度百科-栈

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式