判断元素出栈入栈顺序的合法性
例子:
入栈顺序:1,2,3,4,5 出栈顺序:4,5,3,2,1 合法
入栈顺序:1,2,3,4,5 出栈顺序:4,5,3,1,2 不合法
思路:
1,先判断,如果两个数据序列有任意一个为空;两个序列长度不相等;或者入栈序列长度小于等于0,这三种情况都肯定不合法;
2,创建一个栈,里面依次放入栈序列数据,再创建一个指针cur指向出栈序列。入栈时,判断栈顶元素是否与cur指向的数据相等且栈是否为空,满足条件的话将栈顶元素出栈,cur向后移,继续判断,如果不满足,继续将入栈数据入栈,继续判断,直至数据入栈完成,判断出栈完毕,这下判断栈是否为空,为空则合法,反之就不合法喽!
bool IsPopOrder(const int push[],const int pop[],int length1,int length2)
{
if((length1 != length2) || (length1<&#