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

学习数据结构(9)栈和队列上

1.栈的概念

栈是一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作 的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出(先进先出)的原则

栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶,栈的删除操作叫做出栈,出数据也在栈顶

栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些,因为数组在尾上插入数据的代价比较小

2.栈的实现

(1)初始化栈

(2)销毁栈

(3)判空

(4)入栈

(5)出栈

(6)取栈顶元素

 

(7)获取栈中有效元素个数

3.关于栈的算法题

解法一(参考解法):遍历字符串,遇到左括号则入栈,遇到右括号时,判断栈是否为空,是则,销毁栈,直接返回false,不是则取栈顶数据,判断栈顶数据是否与右括号相对应,是则将栈顶数据出栈,不是则销毁栈,直接返回false,循环结束,判断栈是否为空,为空则说明括号全部配对,返回true,不为空则只有一种可能:栈中有未配对的左括号,返回false

4.队列的概念

队列是只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特点,进行插入操作的一端称为队尾,进行删除操作的一端称为队头

队列也可以用数组和链表的结构实现,使用链表的结构实现更优,因为如果使用数组的结构,出队列就在数组头上出数据,效率会比较低

5.队列的实现

(1)初始化队列

(2)队列判空

(3)入队列

(4)出队列

 (5)销毁队列

(6)取队头元素

       

(7)取队尾元素

       

(8)队列有效元素个数

            

http://www.lryc.cn/news/537199.html

相关文章:

  • 【git-hub项目:YOLOs-CPP】本地实现03:跑自己的实例分割模型
  • MySQL和SQL server的区别
  • C#运动控制——轴IO映射
  • DeepSeek官方发布R1模型推荐设置
  • DeepSeek教unity------MessagePack-03
  • 《安富莱嵌入式周报》第350期:Google开源Pebble智能手表,开源模块化机器人平台,开源万用表,支持10GHz HRTIM的单片机,开源CNC控制器
  • img标签的title和alt
  • MambaMorph brain MR-CT
  • 小米 R3G 路由器(Pandavan)实现网络打印机功能
  • Python PyCharm DeepSeek接入
  • 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第二十节】
  • jemalloc 5.3.0的base模块的源码及调用链使用场景的详细分析
  • ThreadLocal源码分析
  • Python爬虫实战:获取笔趣阁图书信息,并做数据分析
  • 如何在Java EE中使用标签库?
  • 3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密
  • STM32 Flash详解教程文章
  • ubuntu服务器部署
  • 小爱音箱控制手机和电视听歌的尝试
  • 问卷数据分析|SPSS实操之独立样本T检验
  • Linux 内核 IPoIB 驱动中 sysfs 属性冲突问题的分析与解决
  • 双ESP8266-01S通讯UDP配置
  • 【C】初阶数据结构5 -- 栈
  • 闭源大语言模型的怎么增强:提示工程 检索增强生成 智能体
  • C语言-------结构体(1)
  • org.apache.kafka.common.errors.TimeoutException
  • Ceph集群搭建2025(squid版)
  • DeepSeek从入门到精通:提示词设计的系统化指南
  • python后端调用Deep Seek API
  • 自有证书的rancher集群使用rke部署k8s集群异常