📄 lr.txt
字号:
#include<iostream>
#include<iomanip>
using namespace std;
int zt[100];
int zttop=0,fhtop=0;
char a,fh[100];
void push(int i,char ch);
void zt0();
void zt1();
void zt2();
void zt3();
void zt4();
void zt5();
void zt6();
void zt7();
void zt8();
void zt9();
void showstack();
void main()
{
cout<<" 状态栈 "<<" 符号栈 "<<endl;
zt[0]=0;
fh[0]='#';
showstack();
zt0();
}
void zt0()
{
if(fh[fhtop]=='S')
zt1();
else
{
a=getchar();
if(a=='a')
{
zt2();
}
}
}
void zt1()
{
push(1,'S');
a=getchar();
if(a=='#')
{
cout<<" \nover!\n ";
}
}
void zt2()
{
push(2,'a');
if(fh[fhtop]=='A')
zt3();
a=getchar();
if(a=='b')
{
zt4();
}
}
void zt3()
{
push(3,'A');
a=getchar();
if(a=='c')
{
zt5();
}
else if(a=='b')
{
zt6();
}
}
void zt4()
{
push(4,'b');
fhtop--;
zttop--;
zt3();
}
void zt5()
{
push(5,'c');
if(fh[fhtop]=='B')
zt7();
a=getchar();
if(a=='d')
{
zt8();
}
}
void zt6()
{
push(6,'b');
fhtop=fhtop-2;
zttop=zttop-2;
zt3();
}
void zt7()
{
push(7,'B');
a=getchar();
if(a=='e')
{
zt9();
}
}
void zt8()
{
push(8,'d');
fhtop=fhtop-1;
zttop=zttop-1;
zt7();
}
void zt9()
{
push(9,'e');
a=getchar();
fhtop=fhtop-5;
zttop=zttop-5;
zt1();
}
void push(int i,char ch)
{
zttop++;
zt[zttop]=i;
fhtop++;
fh[fhtop]=ch;
showstack();
}
void showstack()
{
cout<<setw(4);
for(int i=0;i<=zttop;i++)
{
cout<<zt[i];
}
cout<<setw(8);
for(int j=0;j<=fhtop;j++)
{
cout<<fh[j];
}
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -