class Stack
{
public:
Stack();
~Stack();
void Push(void *data);
void Pop();
protected:
typedef struct elementT{
struct elementT *next;
void *data;
}element;
element firstEl;
};
Stack::Stack()
{
firstEl = NULL;
return;
}
Stack::~Stack()
{
element *next;
while(firstEl){
next = firstEl->next;
delete firstEl;
firstEl = next;
}
return;
}
void Stack::Push(void *data)
{
element *element = new element;
element->data = data;
element->next = firstEl;
return;
}
void *Stack::Pop()
{
element *popElement = fitstEl;
void *data;
if(firstEl == NULL)
throw StackError(E_EMPTY);
data = firstEl->data;
firstEl = firstEl->next;
delete popElement;
return data;
}
温馨提示:答案为网友推荐,仅供参考