当前位置: 首页 > news >正文

数据结构-栈和队列(1)

文章目录

  • 前言
  • 一、栈
    • 1、概念
    • 2、实现栈
      • 1.1、数组实现
      • 1.2、链表实现
  • 二、队列
    • 1、概念
    • 2、实现队列
      • 2.1、数组实现
      • 2.2、链表实现
  • 三、小练
  • 总结

前言

本篇博客的学习目标是:学习栈和队列的概念实现方式。代码请期待下一篇博客。

一、栈

1、概念

:是一种特殊的线性表,它只允许在固定的一段进行插入删除操作
栈顶和栈底:进行数据插入删除的一端叫做栈顶,另一端叫做栈底。

压栈(push):数据插入栈叫做压栈/进栈/入栈。
出栈(pop):数据从栈删除叫做出栈。
注意: 1、无论压栈还是出栈,都在栈顶实现。2、栈遵循:后进先出的原则。

2、实现栈

1.1、数组实现

1>、简单分析
在这里插入图片描述

2>、具体实现
在这里插入图片描述

1.2、链表实现

在这里插入图片描述
1>、双向链表实现栈
在这里插入图片描述
2>、单链表实现栈
在这里插入图片描述

二、队列

1、概念

队列:也是一种特殊的线性表,它只允许在一端插入,另一端删除。
对头队尾:删除的一端叫队头,插入的一端叫队尾。

2、实现队列

2.1、数组实现

在这里插入图片描述

2.2、链表实现

在这里插入图片描述

三、小练

在这里插入图片描述

总结

  1. 数组和链表的选择栈用数组(顺序表)队列用单链表(链表)。相对效率较高,空间浪费少。
  2. 栈和队列区别栈是在一端进行插入删除,而队列是在一端插入,另一端删除
  3. 栈顶栈底和队头队尾:栈的栈顶是插入删除的一端,另一端是栈底。而队列的队头是删除一端队尾是插入的一端
  4. 栈和队列入已经出的区别:栈的入和出顺序对结果出有影响,因为它规定只在一端入栈、出栈,栈遵循后入先出队列遵循先入先出,队列入和出的顺序对结果出不影响。
  5. 栈和队列实现:基本上是顺序表和链表的内容,比如压栈、出栈就是尾插、尾删。只是限制了一些条件。

相关文章:

  • 【微服务】springboot 整合 dubbo3.0
  • c++迭代器STL中的vector简单概述
  • 不可重复读和幻读详解(必看!!!)
  • 2022eclipse下载安装与使用教程
  • 【云原生】zookeeper + kafka on k8s 环境部署
  • 【牛客刷题日记】— Javascript 通关秘籍
  • 深度学习项目部署遇到的错误【记录】
  • 解决无法获取到B站点赞数和播放量的解决办法
  • 【历史上的今天】9 月 19 日:世界上第一个表情符号;微软发布 Virtual PC;苹果 UI 扁平化的开始
  • lio-sam框架:后端里程计、回环、gps融合
  • 使用Eclipse创建一个简单的servlet项目
  • 【OpenCV】- 模板匹配(浩瀚星空只为寻找那一抹明月)
  • Python Apex Legends 武器自动识别与压枪 全过程记录
  • 程序里对象很深很大,可以用这个设计模式缓解一下
  • Seata 分布式事务 详解+使用
  • create-react-app项目添加less配置
  • extract-text-webpack-plugin用法
  • go append函数以及写入
  • mysql外键的使用
  • SOFAMosn配置模型
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • webpack入门学习手记(二)
  • 聊聊redis的数据结构的应用
  • 驱动程序原理
  • 思考 CSS 架构
  • 王永庆:技术创新改变教育未来
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​【已解决】npm install​卡主不动的情况
  • #70结构体案例1(导师,学生,成绩)
  • #QT 笔记一
  • (1)Hilt的基本概念和使用
  • (11)MATLAB PCA+SVM 人脸识别
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C++)八皇后问题
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (二)Optional
  • (排序详解之 堆排序)
  • (算法)Travel Information Center
  • (一)Docker基本介绍
  • (一)VirtualBox安装增强功能
  • ./configure,make,make install的作用
  • .gitignore文件忽略的内容不生效问题解决
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET 表达式计算:Expression Evaluator
  • .NET4.0并行计算技术基础(1)
  • .net通过类组装数据转换为json并且传递给对方接口
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [BIZ] - 1.金融交易系统特点
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [C\C++]读入优化【技巧】
  • [Excel] vlookup函数