栈和队列(操作受限的线性表)(数据结构一)

栈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快速开发

猜你喜欢

转载自blog.csdn.net/AC_872767407/article/details/114382223