嵌入式学习(链式栈和链式队列)

news2024/9/22 15:37:08

栈(stack)是一种只能在一端插入或删除操作的线性表。

栈只能在表尾插入或删除元素,表尾就是栈的栈顶,表头就是栈底

栈的主要特点:LIFO(last in first out) "后进先出"

栈可以采用顺序存储结构(顺序栈) 和   链式存储结构(链式栈)

链式栈适用于以下场景:

  • 动态数据场景:适用于无法预估数据量,或数据量变化频繁的场景。
  • 嵌套操作:如括号匹配、递归求解、函数调用等栈操作场景。
  • 需要频繁的压栈和弹栈操作:由于链式栈的插入和删除效率高,非常适合频繁的栈操作。
  1. 入栈(Push):将一个元素压入栈顶。
  2. 出栈(Pop):将栈顶元素弹出并返回该元素。
  3. 查看栈顶元素(Top):返回栈顶元素的值,但不弹出该元素。
  4. 获取栈的大小(Size):返回栈中元素的个数。
  5. 栈的创建和销毁:创建一个新的空栈并初始化,销毁栈时释放所有元素的内存。
  • 入栈操作:每次添加新元素时,新元素成为链表的头结点。新的头结点指向原来的头结点。
  • 出栈操作:每次删除元素时,删除的是链表的头结点。删除后,原头结点的下一个结点成为新的头结点。

链式队列

队列是一种先进先出(FIFO)的线性表,它只允许在表的一端进行插入,而在另一端删除元素。这和我们日常生活中的排队是一致的,最早进入队列的元素最早离开。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2111222.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

备战秋招60天算法挑战,Day33

题目链接: https://leetcode.cn/problems/longest-increasing-subsequence/ 视频题解: https://www.bilibili.com/video/BV1RRvheFEog/ LeetCode 300. 最长递增子序列 题目描述 给你一个整数数组nums ,找到其中最长严格递增子序列的长度。 …

Vue——day10之指令

目录 内置指令 v-text指令 v-html指令 v-cloak指令 v-once指令 v-pre指令 整体代码示例 自定义指令 整体代码演示 总结 内置指令 v-text指令 v-text指令是Vue.js中的一种指令,它用于将元素的textContent设置为指定的值。它的使用方式是在元素上添加v-tex…

JavaScript( 简介)

目录 含义 实例 js代码位置 1 外部引入js文件 2 在 HTML 中,JavaScript 代码必须位于 标签之间。 小结 含义 js是一门脚本语言,能够改变HTML内容 实例 getElementById() 是多个 JavaScript HTML 方法之一。 本例使用该方法来“查找” id"d…

大数据 - 行式存储与列式存储

为什么要区分? 大多数数据库系统存储一组数据记录,这些记录由表中的列和行组成。表可以水平分区(将属于同一行的值存储在一起),也可以垂直分区(将属于同一列的值存储在一起)。 数据库用于存储、…

zdppy+vue3+onlyoffice文档管理系统实战 20240906 上课笔记 整合权限校验中间件

基于角色方法的中间件基本用法 import zdppy_api as api import zdppy_apimidauthasync def index(request):return api.resp.success()async def login(request):token zdppy_apimidauth.get_role_token(role"admin")return api.resp.success(token)auth_dict {&…

单例模式的总结

常规模式:有属性/构造方法/普通方法,也可以在类中执行主方法,也可以在test类中执行主方法 单例模式是什么? 单例模式:类只有1个对象;保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式是在内存中 仅会创建一次对象 的设计模式特点: 成员是 私有的静态的 构…

手机扬声器音量总是不够大?试试“扬声器助推器”吧

手机的扬声器音量总是不够大,尤其是在嘈杂的环境中,音乐和视频的声音总是不太清晰。直到我发现了这款“扬声器助推器”,我的手机音质瞬间提升了好几个档次。 软件简介: “扬声器助推器”利用先进的音频处理技术,能够…

中国各银行流动性比例数据(2000-2022年)

介绍中国银行业2000年至2022年间的流动性比例数据,涵盖500多家银行,包括城市商业银行、城镇银行、大型商业银行、股份制银行、民营银行、农村合作银行、农村商业银行、农村信用社等。这些数据对于理解中国银行业的流动性状况至关重要,有助于投…

ansible+awx搭建

1、环境介绍 操作系统版本:龙蜥os 8.9 docker 版本:26.0.2 python版本:3.11.9 ansible版本:2.16.6 awx版本:24.2.0 2、安装docker 设置软件源 yum install -y yum-utilsyum-config-manager \--add-repo \https://mirr…

【生日视频制作】长腿美女模特坐在椅子上打招呼大屏幕AE模板修改文字软件生成器教程特效素材【AE模板】

生日视频制作教程长腿美女模特坐在椅子上打招呼大屏幕文字AE模板修改文字特效广软件告生成神器素材祝福玩法AE模板工程 怎么如何做的【生日视频制作】长腿美女模特坐在椅子上打招呼大屏幕AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤: 安装A…

Google play最新政策更新和重要提醒

我们都知道,谷歌会定期更新其政策,而政策的变更通常对开发者及其团队的要求会更为严格,也会增加应用上架的一些限制条件,以此提高应用在谷歌商店的质量。 一起来看看Google play最近的一些政策更新和需要注意的地方。 新政策要求 …

2024高教社杯全国大学生数学建模竞赛C题精美可视化(python代码)

2024高教社杯全国大学生数学建模竞赛C题原创python代码 C题题目:农作物的种植策略 先给大家看看图吧: #描述性统计分析 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from scipy.stats import kurt…

DWPD指标:为何不再适用于大容量SSD?

固态硬盘(Solid State Drives, SSD)作为计算机行业中最具革命性的技术之一,凭借其更快的读写速度、增强的耐用性和能效,已经成为大多数用户的首选存储方案。然而,如同任何其他技术一样,SSD也面临自身的挑战…

vite创建的vue项目怎么使用jsx来实现elementPlus表格表尾的合计有多行大的方法

vite创建的vue3项目安装vitejs/plugin-vue-jsx 先附上代码效果 npm i vitejs/plugin-vue-jsx -D 注意:vite的版本不同请安装不同版本的 /plugin-vue-jsx 我创建项目的vite版本是 4.3.9 所以我就按照了 3.0.2版本的vitejs/plugin-vue-jsx 安装完后需要在 vite.con…

牛客刷题之JZ31.栈的压入、弹出序列(C++)

1.题目解析 本题给出两个序列,判断一个序列压入栈后的弹出序列是否有可能成为另一个序列,核心难度就是如何判断能否满足弹出序列 2.算法原理 这里的算法思路是讲压入栈的序列模拟弹出,即将压入的序列与弹出的序列对比,相同则将压入…

7、关于LoFTR

7、关于LoFTR LoFTR论文链接:LoFTR LoFTR的提出,是将Transformer模型的注意力机制在特征匹配方向的应用,Transformer的提取特征的机制,在自身进行,本文提出可以的两张图像之间进行特征计算,非常适合进行特…

GAMES101(5~6节,光栅化)

光栅化Rasterization 透视投影已知field和近平面,如何推导宽度? 根据三角函数:tan field / 2 (height / 2) / ||n||近平面,从而可以求出高度 因为知道宽高比,所以可以求出宽度,高度 * 宽/高 视口变换 …

Vulkan描述符、描述符Pool、Layout概念

1、DescriptorSetLayout为了组织和管理着色器资源(如缓冲区、纹理、采样器等),多个相同类型的Descriptor放在一个Layout中以优化GPU对资源的访问 //DescriptorSetLayout定义了哪些描述符Descriptor类型(Buffers、Textures、Sample…

四、搭建网站服务器超详细步骤——解决宝塔界面无法登录问题

前言 本篇博客是搭建网站服务器的第四期,也到了中间的一节 先分享一下我在搭建网站时的个人感受,我在这个环节卡住了很久 后来突然醒悟了,然后成功进入了宝塔界面 现在就来分享一下,我所遇到的问题 小伙伴们坐好了 …

LINUX和Windows提权前信息收集的两种方式

信息收集分为两种方式: 手动收集、自动收集; 手动枚举一个系统非常耗时,然而这种方法允许更多的控制,并可以帮助识别自动化工具经常遗漏的更奇特的提权提升方式; 一、手动收集 1、枚举用户 Windows whoami …