判断出栈序列
一.栈的特点
先进后出,后进先出
二.出栈序列的特点
1.从栈顶开始依次取出若干元素(不大于栈中总元素个数)组成一个有序数列
2.出栈序列必是一个或多个上述有序数列的按序排列
三.判断是否为出栈序列
1.已知条件
a.原始序列(数组) start
b.已知的出栈序列(数组) end
2.准备条件
a.原始序列数组下标 s
b.已知出栈序列数组下标 e
c.入栈函数 push()
d.出栈函数 pop()
e.取栈顶元素函数 peek()
f.判栈空函数 isEmpty()
3.限制条件
该方法在顺序栈的定义类中实现,则可直接调用相关栈操作函数;
权限为公有,方便其他函数调用;
返回值设为boolean类型,若已知出栈序列为原始序列的出栈序列,则调用该方法后返回true,否则返回false。
4.方法设计思路
a.s,e初始值设为0,分别从两个数组首元素开始按序遍历
b.当s所指元素与e所指元素不同时,s所指元素入栈,s指向下一元素,直到s所指元素与e所指元素相同。
c.此时,s所指元素与e所指元素相同,s所指元素入栈,s指向下一元素,与此同时,栈顶元素出栈,e指向下一元素。
d.因为出栈序列特点,所以此时因判断此时的栈顶元素是否和e所指元素相同。
e.当栈顶元素和e所指元素相同时,栈顶元素出栈,e指向下一元素,直到栈顶元素与e所指