本文用C++簡單實現一個鏈式棧(只有最基本的功能)。代碼如下:
List_Stack.h
struct Node {
int value;
Node * next;
};
class List_Stack
{
private:
Node * top;
int size;
public:
List_Stack();
int get_size();
bool is_empty();
int pop();
void push(int value);
};
List_Stack.cpp
List_Stack::List_Stack()
{
top = NULL;
size = 0;
}
int List_Stack::get_size()
{
return size;
}
bool List_Stack::is_empty()
{
if (size == 0)
{
return true;
}
return false;
}
int List_Stack::pop()
{
if (!is_empty())
{
Node * p = top;
int ret = top->value;
top = top->next;
delete p;
p = NULL;
size--;
return ret;
}
else
{
cout << "Error: Stack is empty!" << endl;
return INT_MAX;
}
}
void List_Stack::push(int value)
{
Node * p = new Node;
p->value = value;
p->next = top;
top = p;
p = NULL;
size++;
}
經測試,可行。