/*
栈的链表实现
*/
#include<iostream>
#include<string>
using namespace std;
template<class T>
struct Node
{
T date;
Node<T> *next;
Node()
{
next=NULL;
}
Node(T element)
{
this->date=element;
next=NULL;
}
};
template<class T>
class Stack
{
public:
//创建空栈
Stack();
//入栈
void Push(T data);
//出栈并返回
T Pop();
//返回栈顶元素
T Top();
//判断是否为空栈
bool isEmpty();
//清空栈
void Clear();
//获得栈的大小
size_t GetSize();
private:
//栈顶、栈底
Node<T> *top,*bottom;
//栈的大小和指示器
size_t size;
};
template<class T>
Stack<T>::Stack()
{
top=NULL;
bottom=NULL;
size=0;
}
template<class T>
void Stack<T>::Push(T data)
{
if(top==NULL)
{
bottom=top=new Node<T>(data);
}
else
{
top->next=new Node<T>(data);
top=top->next;
}
size++;
}
template<class T>
T Stack<T>::Pop()
{
if(isEmpty())
{
throw runtime
c++ 栈的链表实现
最新推荐文章于 2024-07-17 15:29:28 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)