假设以I和O分别代表入栈和出栈操作,设计一个算法判断任一给定的栈操作序列是否合法。(例如:IOIOIIOOIO)
算法的设计思想:依次扫描出栈入栈操作序列,每扫描至一个位置,需检查出栈次数是否大于入栈次数,若大则非法。
扫描结束后,再检查出栈次数与入栈次数是否相等,若不相等,则非法。
C代码如下:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdbool.h>
char s[1000];
/*
* 判断一组入栈出栈操作序列是否合法的算法
*
**Tue Sep 17 2013 wuyudong <xueda120@gmail.com>
*/
/**
*Judge - 判断函数
*@str : 一组入栈出栈操作序列,默认为字符型
*
*/
bool Judge(char *str)
{
int i, I_count, O_coun