📄 intosuffix.h
字号:
typedef char DataTypeS;
typedef char DataTypeQ;
#define MaxStackSize 100
#include"SeqStack.h"
#include"SeqQueue.h"
int InToSuffix( char *p, SeqQueue *Q, int n )
{
SeqStack S;
int i;
char m;
StackInitiate(&S);
QueueInitiate(Q);
StackPush( &S, '#' );
for( i = 0; i < n; i ++ )
{
if( '#' == p[i] )
{
while( 1 )
{
if( 0 ==StackPop( &S, &m ) )
return 0;
if( '#' == m )
return 1;
else
QueueAppend( Q, m );
}
}
else if( '+' == p[i] || '-' == p[i]
|| '*' == p[i] || '/' == p[i]
|| '(' == p[i] || ')' == p[i] )
{
switch( p[i] )
{
case '+':
case '-':
{
while(1)
{
if( 0 == StackTop( S, &m ) )
return 0;
if( '#' == m || '(' == m )
{
StackPush( &S, p[i] );
break;
}
else
{
if( 0 == StackPop( &S, &m ) )
return 0;
else
QueueAppend( Q, m );
}
}
break;
}
case '*':
case '/':
{
while(1)
{
if( 0 == StackTop( S, &m ) )
return 0;
if( '/' == m || '*' == m )
{
if( 0 == StackPop( &S, &m ) )
return 0;
else
QueueAppend( Q, m );
}
else
{
StackPush( &S, p[i] );
break;
}
}
break;
}
case '(':
{
if( 0 == StackPush( &S, p[i] ) )
return 0;
else
break;
}
case ')':
{
while(1)
{
if( 0 == StackTop( S, &m ) )
return 0;
if( '(' == m )
{
if( 0 == StackPop( &S, &m ) )
return 0;
else
break;
}
else
{
if( 0 == StackPop( &S, &m ) )
return 0;
else
QueueAppend( Q, m );
}
}
break;
}
}
}
else
QueueAppend( Q, p[i] );
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -