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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lacrimosa&L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值