求助,关于stack的一道题,有兴趣的同胞可以看看
ajioy 2010-11-01 09:16:08 1.下面的程序以传统形式的struct定义了一个存放字符的栈类型,并定义了有关栈操作的各种函数。编写一个主函数,定义并输出一个字符串,用此串来验证栈的各种操作,包括把串压入栈中后再弹出,以相反的次序将他们显示出来。
const max_len=1000;
enum boolean {false,true};
enum {EMPTY=-1,FULL= max_len -1};
struct stack{
char s[max_len];
int top;
};
void reset (stack *st){st->top= EMPTY;}
void push(char c, stack *st){
st->top++;
st->s[st->top]=c;
}
char pop(stack *st){return(st->s[st->top--]);}
char top(stack *st){ return(st->s[st->top]);}
boolean empty(const stack *st){return(boolean)(st->top== EMPTY);}
boolean full(const stack *st){return(boolean)(st->top== FULL);}
复制代码
2.用类来定义上面的字符栈,并把所有的栈操作函数定义成类成员函数。
3.在上题的基础上,定义两个重载函数push(char c;int n)和pop(int n),表示连续压入或弹出n个字符。
4.在上题的基础上,把所有的成员函数定义为公有的函数,数据成员定义为私有成员,并编写主函数调用测试各种栈操作函数的程序。