C⼀C++帮忙看一下这个程序是什么意思,只有解释我打了双斜杠的部分。。。急求

2025-03-01 05:26:10
推荐回答(1个)
回答1:

//s.a[s.top] 这东东是栈顶元素

void init(Sqstack *s);               // 声明 初始化栈 函数 

Elem pop(Sqstack *s);              //声明 取栈顶元素函数

void push(Sqstack *s, Elem e);         //声明 出栈函数


void init(Sqstack *s)

{

 s->top = -1;

}

void push(Sqstack *s, Elem e)

{

 if (s->top == MAX - 1)         //判断是否为满栈

  printf("stack full");

 else

 {

  s->top++;

  s->a[s->top] = e;          //让元素e 进栈 

 }

}

Elem pop(Sqstack *s)

{

 Elem x;

 if (s->top == -1)           // 判断是否为空栈

 {

  printf("stack underflow");

 }

 else

 {

  x = s->a[s->top];           //把栈顶元素赋值给 变量x

  s->top--;        //                让栈顶元素出栈

  return x;          //        函数最终返回刚刚取出的栈顶元素值

 }

}


int main()

{

 Sqstack s;

 init(&s);

 int j;

 char ch;

 Elem e, x;

 Sqstack s1;

 printf("please input the char,such as {{{【【【()】】】}}}");

 printf("括号序列如下:\n");

 do

 {

  ch = getchar();

  printf("%c  ", ch);

  switch (ch)

  {

  case '(': push(&s, ch); break;

  case '[': push(&s, ch); break;

  case '{': push(&s, ch); break;

  case ')': { if (s.a[s.top] == '(')      //判断栈顶元素是否为字符 '('