c++栈的问题
因为它说了依次轮流入栈和入队= =,所以就是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,指向栈顶)。
参考资料来源:百度百科-栈