课上数据结构作业,可以处理多位数输入,负数输入,小数输入,必须合法输入,无任何健壮性。。。
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
template<typename T>
class Stack {
public:
void clear();
bool push(const T item);
bool pop(T &item);
bool showTop(T &item);
bool isEmpty();
bool isFull();
};
template<typename T>
class arrayStack : public Stack<T> {
private:
int maxSize;
int top;
T *stack;
public:
arrayStack(int size) {
maxSize = size;
top = -1;
stack = new T[maxSize];
}
arrayStack() {
top = -1;
}
void clear() {
top = -1;
}
bool push(const T item) {
if (top == maxSize - 1) {
cout << "stack overflow" << endl;
return false;
}
else {
stack[++top] = item;
return true;
}
}
bool pop(T &item) {
if (top == -1) {
cout << "the stack is empty when trying to pop" << endl;
return false;
}
else {
item = stack[top--];
return true;
}
}
void pop() {
top--;
}
bool showTop(T &item) {
if (top == -1) {
cout << "the stack is empty" << endl;