D
dzx_zjg
Unregistered / Unconfirmed
GUEST, unregistred user!
假设一个算术表达式中可含有三种括号:圆括号“(”和“)”,方括号“[”和“]”,花括号“{”和“}”,且这三种括号可按任意的次序嵌套使用。以下是利用栈,判别给定表达式中所含括号是否正确配对出现的算法(可设表达式已存入字符型的数组中)。请在程序中划线处填入正确的语句,以完成上述功能。
其中以下是栈的基本操作:
inistack(&s) //构造一个空栈
push(&s,e) //插入元素e为新的栈顶元素
gettop(&s) //取得栈的栈顶元素
pop(&s) //删除栈的栈顶元素
empty(&s) //判断栈是否为空,若为空则返回TRUE,否则返回FALSE
#define m0 100
int correct (exp)
char exp[m0];
{
stack st;
inistack(st);
int i=1;
int tag=1;
while(i<=m0&&tag)
{
if(exp= = ‘{’ || exp= = ‘[’ || exp= = ‘(’ ) ① ;
if( ② ) pop(st);
else
③ ;
④ ;
}
return(tag&&empty(st));
} // correct
这四行语句该怎么写?
其中以下是栈的基本操作:
inistack(&s) //构造一个空栈
push(&s,e) //插入元素e为新的栈顶元素
gettop(&s) //取得栈的栈顶元素
pop(&s) //删除栈的栈顶元素
empty(&s) //判断栈是否为空,若为空则返回TRUE,否则返回FALSE
#define m0 100
int correct (exp)
char exp[m0];
{
stack st;
inistack(st);
int i=1;
int tag=1;
while(i<=m0&&tag)
{
if(exp= = ‘{’ || exp= = ‘[’ || exp= = ‘(’ ) ① ;
if( ② ) pop(st);
else
③ ;
④ ;
}
return(tag&&empty(st));
} // correct
这四行语句该怎么写?