**1. 编程实现栈的如下功能:
假设以P和O(大写字母O)表示入栈和出栈操作,根据一个P和O的序列,对一个空堆栈进行操作,当进行操作结束后,堆栈为空,则该序列是合法的,否则为非法的(包括栈满操作没完成,栈空操作没完成,操作完成但堆栈为空)。当判断为P时,输入入栈元素并入栈,当判断为O时输出栈顶元素并出栈。入栈元素类型设为int型。
要求:
main()
输入:
M,代表堆栈的最大容量
序列,由P和O构成的序列
输出:
合法或非法
以上操作可以多次运行
部分代码为:
InitStack(S);//初始化堆栈;
do
{
cout<<”输入堆栈的最大容量:”;
cin>>M;
cout<<”输入P和O序列”;
cin>>str;//str为string类型或字符数组
以下为处理部分,判断为P时,提示输入数值,最后,处理结束,输出”合法”或”非法”的判断,若非法,还要输出堆栈内容。
Clear(S);//栈不空,则要清空堆栈;
cin>>i;
}while i<>0;