📄 lstack.h
字号:
//LStack.h
template <class Elem>
class Link
{
public:
Link* next;
Elem element;
Link(Link<Elem>* lp = 0)
{
next = lp;
}
Link(const Elem& e,Link<Elem>* lp = 0)
{
element = e;
next = lp;
}
};
template <class Elem>
class LStack
{
private:
Link<Elem>* head;
int size;
public:
LStack(int sz = 100)
{
size = 0;
head = 0;
}
~LStack()
{
}
void Clear()
{
while(head != 0)
Pop();
}
bool Push(const Elem& value)
{
Link<Elem>* temp = new Link<Elem>;
temp->element = value;
temp->next = head;
head = temp;
size++;
return true;
}
Elem Top()const
{
if(head == 0)
{
cerr << "Error:there is nothing in stack!" << endl;
return (Elem)0;
}
return head->element;
}
bool Top(Elem& value)
{
if(head == 0)
return false;
value = head->element;
return true;
}
bool Pop()
{
if(head == 0)
{
cerr << "Error:nothing can pop!" << endl;
return false;
}
Link<Elem>* temp;
temp = head->next;
delete head;
head = temp;
size--;
return true;
}
int Size()const
{
return size;
}
bool Empty()const
{
if(head == 0)
return true;
return false;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -