阅读下列算法(假设栈的操作函数都已定义),并回答问题:
voidf31()
{SeqStackS;
charx,y;
x='c';
y='k';
Push(&S,x);
Push(&S,'a');
Push(&S,y);
x=Pop(&S);
Push(&S,'t');
Push(&S,x);
x=Pop(&S);
Push(&S,'s');
while(!StackEmpty(&S))
{y=Pop(&S);
putchar(Y);
}
putchar(x);
}
(1)自底向上写出执行while语句之前栈S中的元素序列。
(2)写出该函数的最后输出结果。
(1)执行while语句之前栈s中的元素序列为c,a,t,s。 (2)该函数的最后输出结果为stack。 解析:通过阅读程序可知执行while语句之前栈s中的元素序列为c,a,t,s;该函数的最后输出结果为s.tack。