阅读以下说明和C语言函数,将应填入 (n) 处的宇句写在答题纸的对应栏内。 【

题库2022-08-02  28

问题 阅读以下说明和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;   }

选项

答案

解析
转载请注明原文地址:https://tihaiku.com/congyezige/2428300.html

最新回复(0)