链表栈

基于链表实现的栈

实现的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include<iostream>
#include<cstring>
#include<cstdlib>
#include"LInk.h"
using namespace std;

template<typename T>
class LinkStack{

private:
LinkList <T>*data;

public:
LinkStack(){
data=new LinkList<T>();
}

//获得链表中的元素总数
int getSize(){
return data->getSize();
}

//判断链表是否为空
bool isEmpty(){
return data->isEmpty();
}

//入栈操作
void push(T e){
data->addLast(e);
}

//出栈操作
T pop(){
return data->removeLast();
}

//查看栈顶的元素
T peek(){
return data->getLast();
}

//打印栈
void PrintLinkstack(){
cout<<"tail:";
data->PrintLinkList();
}
};
int main(){

LinkStack <int>*arr=new LinkStack<int>();
for(int i=1;i<10;i++) {
arr->push(i);
if(i%3==0)
int a=arr->pop();
arr->PrintLinkstack();
}

return 0;
}