堆栈作为两个线性数据结构,运用较多。
栈
Stack是一种先进后出的数据结构
队列
Queue是一种先进先出的数据结构
链表
链表是一种递归的数据结构,它或者为空,或者指向一个节点的引用。
联系
栈和队列可以用数组实现,也可以用链表实现。
栈的实现-数据操作
方法 | 说明 |
---|---|
push | 向栈中加入元素 |
pop | 弹出栈顶元素 |
peek | 查看栈顶元素 |
getSize | 获取栈顶元素个数 |
isEmpty | 判断是否为空 |
队列的实现-数据操作
方法 | 说明 |
---|---|
enqueue | 入队 |
dequeue | 出队 |
getFront | 获取队首元素 |
getSize | 获取队列元素个数 |
isEmpty | 判断是否为空 |
链表的实现-数据操作
方法 | 说明 |
---|---|
add | 插入链表元素 |
remove | 删除链表元素 |
set | 修改链表元素 |
get | 查找链表元素 |
contains | 查找是否包含元素 |
链表实现栈和队列
不同于数组实现栈,对于查找的操作时间复杂度O(N),通过链表实现的栈还是队列都将把复杂度降低。
具体如何用链表实现栈和队列,可以参考 这篇。