Open echoJzjjy opened 2 years ago
错误说明,data那里输出一直都是pop 0 success class mystack { private: int *arr; int size; int tail;
public: mystack(int x):size(x),tail(0),arr(new int[5]){} mystack():size(100),tail(0),arr(new int[100]){}
int isempty() { if(tail==0) return 1; else return 0; } int isfull() { if(tail>=size) return 1; else return 0; } int push(int i) { if(tail<size) { arr[tail] = i; tail ++; return 1; } else return 0; } int pop(int data) { if(tail>0) { data = arr[tail]; tail --; return 1; } else return 0; } };
如图:
这个data打印出来就是0,不动main没法改这个data啊……
不需要更改main,在写pop时定义引用变量,调用时指向data
错误说明,data那里输出一直都是pop 0 success class mystack { private: int *arr; int size; int tail;
public: mystack(int x):size(x),tail(0),arr(new int[5]){} mystack():size(100),tail(0),arr(new int[100]){}
int isempty() { if(tail==0) return 1; else return 0; } int isfull() { if(tail>=size) return 1; else return 0; } int push(int i) { if(tail<size) { arr[tail] = i; tail ++; return 1; } else return 0; } int pop(int data) { if(tail>0) { data = arr[tail]; tail --; return 1; } else return 0; } };