实现一个函数,序列a为入栈顺序,判断序列b是否是序列a的出栈顺序
bool is_pop_stack(int a[],int b[],int len)
{
// 创建一个栈
ArrayStack* stack = create_array_stack(len);
for(int i=0,j=0; i<len; i++)
{
// 按a的顺序一个个入栈
push_array_stack(stack,a[i]);
// 按b的顺序尝试出栈
int val = 0;
while(top_array_stack(stack,&val)
&& val == b[j])
{
pop_array_stack(stack);
j++;
}
}
// 判断栈是否为空
bool flag = empty_array_stack(stack);
destory_array_stack(stack);
return flag;
}