当前位置:首页
>
查试题
>
阅读以下说明和C语言函数,将应填入 (n) 处的宇句写在答题纸的对应栏内。【说明】 函数bool Del_elem(STACK *s,char para_ch)的功能是:删除栈*s中与para_ch之值相等且最接近栈项的元素(字符),若栈中不存在该元素,则函数返回FALSE,否则返回TRUE。其中,STACK是栈的类型名。 函数Del_elem实现上述功能的方法是:利用栈的基本操作,先将栈*s中所有比para_ch之值更接近栈顶的元素暂时存放在临时工作栈s_bak中,使得与para_ch之值相等的元素成为栈顶元素,此时执行出栈操作,即从栈中删除与para_ch之值相等的元素,最后再将s_bak中的元素依次存回栈*S。 在函数Del_elem中必须使用栈的基本操作进行栈上的运算,实现栈的基本操作的函数原型说明如下: void InitStack(STACK *S):初始化栈。 void Push(STACK *S,char e):将一个字符压栈,栈中元素数目增1。 void Pop(STACK *S):栈顶元素出栈,栈中元素数目减1。 char Top(STACK S):返回非空栈的栈顶元素值,栈中元素数目不变。 bool IsEmpty(STACK s):若S是空栈,则返回TRUE;否则返回FALSE。 bool类型定义如下: typedef enum {FALSE = 0,TRUE = 1} bool;【C语言函数】 bool Del_elem(STACK *s,char para_ch) { STACK s_bak; /*定义临时工作栈s_bak*/ char ch; bool tag = FALSE; (1) ; /*中初始化临时工作栈s_bak*/ /*中将栈*s中所有比para_ch更接近栈顶的元素暂时存放在临时工作栈s_bak中*/ while(!IsEmpty(*S)) { ch = (2) ; /*取栈顶元素*/ Pop(s); if (ch == para_ch) { tag = TRUE; break; } (3) ; } /*将暂存于临时工作栈s_bak中的元素存回栈*S */ while ( (4) ) { ch = Top(s_bak); (5) ; Push(s, ch); } return tag; }