2. 利用教材中的Stack类,为其设计外部函数(非成员函数)实现下面delete_all功能,必要时可以使用临时的Stack对象。编写主函数测试delete_all函数,栈元素设定为字符类型即可。
template
void delete_all(Stack &s, const T &x)——删除栈s中所有等于x的数据项,保持其他数据项顺序不变。
输入:input.txt,其第一个字符为x,其后按栈底到栈顶的顺序依次给出栈中字符,字符间用空格、回车或制表符间隔,如:
a
b a t a a e c
表示栈底栈顶内容为b a t a a e c,要删除内容为a
输出:删除后栈中字符内容,从栈顶到栈底的顺序即可,相邻元素间用空格间隔,最后一个元素之后不能有空格。最后输出一个回车。如上例,应为
―――――――――
c e t b
―――――――――――――
1