#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
#define MAX 100
typedef struct {
char *base;
char *top;
int maxsize;
}Stack;
void Initstack(Stack &mystack) {
mystack.base = new char[MAX];
mystack.top = mystack.base;
mystack.maxsize = MAX;
}
void push(Stack &mystack, char e) { //默认栈不满
*(mystack.top) = e;
mystack.top++;
}
void pop(Stack &mystack) { //判空
mystack.top--;
}
int main() {
char s[100];
while(cin >> s)
{
if (s[0] == '0') break;//退出条件
Stack mystack;
Initstack(mystack);//建栈+初始化
int flag = 1;//标志
for (int i = 0; s[i] != '\0'; i++) {
//出栈
if (s[i] == 'O'){
if (mystack.top==mystack.base) //栈空
flag = 0;
else
pop(mystack); //不空
}
//入栈
else if (s[i] == 'I') {
push(mystack, s[i]);
}
if (flag == 0) {
cout << "FALSE" << endl;
break;
}
}
if(flag==1)
cout << "TRUE" << endl;
}
}
245 基于栈的可操作判断 (自定义栈)
最新推荐文章于 2025-05-30 08:05:08 发布