入栈出栈题目怎么做?
1个回答
展开全部
栈的原则是先进后出,进栈序列为el,e2,e3,e4,不是说一次性进入的,而是先进了el,e2,这时候出栈的话一定出e2,e3,e4又进栈,这时候出栈顺序就是e4,e3,el 了,总的出栈顺序就是e2,e4,e3,el 了。
栈的特点是先进后出,即:进去的早,出来的晚。
54321进栈,5在栈底,1在栈顶!
出一次栈,则栈顶的1先出来,2成为新的栈顶。
ABCD入栈,D成为新的栈顶。
全部出栈:D C B A 2 3 4 5
综上,所有元素退栈顺序为:1 D C B A 2 3 4 5
进栈(PUSH)算法
①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);
②置TOP=TOP+1(栈指针加1,指向进栈地址);
③S(TOP)=X,结束(X为新进栈的元素);
退栈(POP)算法
①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);
②X=S(TOP),(退栈后的元素赋给X):
③TOP=TOP-1,结束(栈指针减1,指向栈顶)。
以上内容参考:百度百科-栈
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询