栈Stack
1.1栈的定义
栈(Stack)是只能在一端进行插入或删除操作的线性表。
栈的主要特点是后进先出。
1.2栈的顺序存储结构实现
分配一块连续的存储区域存放栈中的元素,并用一个变量指向当前的栈顶。
采用顺序存储的栈称为顺序栈,Java Util包下的Stack就是顺序栈。
栈的应用
队列Queue
2.1队列的定义
队列也是一种操作受限的线性表。仅能在一端删除,另一端插入。
api
java 集合类
数据结构 队列
底层 数组
绿色:了解
红色:重点
橘黄色:接口
维护
头、尾
offer(T t)
poll(T t) 获取并移除此队列的头,如果此队列为空,则返回 null
peek() 获取但不移除此队列的头;如果此队列为空,则返回 null
size()
队列的顺序存储结构实现
数据结构:队列
底层:数组
链式
循环队列
队列的应用
普通队列的应用场景是有限的,一般在工程中用到的是阻塞队列(消息队列)
阻塞队列:常用于生产者-消费者模型中
线程池:减少开销
利用队列实现:BFS 广度优先搜索 / 遍历
不要重复造轮子
Spring,框架 CV快速开发