03-3.1.1 栈的基本概念

  • 👋 Hi, I’m @Beast Cheng
  • 👀 I’m interested in photography, hiking, landscape…
  • 🌱 I’m currently learning python, javascript, kotlin…
  • 📫 How to reach me --> 458290771@qq.com

喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会不断更新。🧑‍💻
此外,《程序员必备技能》专栏和《程序员必备工具》专栏(该专栏暂未开设)日后会逐步更新,感兴趣的小伙伴可以点一下订阅、收藏、关注!🚀
谢谢大家!🙏

定义

线性表是具有相同数据类型的n(n >= 0)个数据元素的有限序列,其中n为表长,当n=0时,线性表是一个空表。若用L命名线性表,则其一般表示为:
L = ( a 1 , a 2 , . . . , a i , a i + 1 , . . . , a n ) L=(a_1, a_2, ..., a_i, a_{i+1}, ..., a_n) L=(a1,a2,...,ai,ai+1,...,an)
栈(Stack)只允许在一端进行插入或删除操作线性表
也就是说我们如果要执行插入操作的时候,只能在表尾进行插入,不能在表的中间进行插入,这是栈这种数据结构所不允许的


重要术语:栈顶、栈底、空栈

  • 栈顶:允许插入和删除的一端
  • 栈底:不允许插入和删除的一端

示例

  • 进栈顺序: a 1 − > a 2 − > a 3 − > a 4 − > a 5 a_1->a_2->a_3->a_4->a_5 a1>a2>a3>a4>a5
  • 出栈顺序: a 5 − > a 4 − > a 3 − > a 2 − > a 1 a_5->a_4->a_3->a_2->a_1 a5>a4>a3>a2>a1

特点:后进先出 Last In First Out(LIFO)
栈其实就是一种特殊的线性表:

  • 逻辑结构:与普通的线性表相同
  • 数据的运算:插入、删除操作有区别

基本操作

再看栈的基本操作之前,先回顾线性表的基本操作[[线性表——知识总览#^0a30c4]]
栈的基本操作

  • InitStack(&S)初始化栈——构造一个空栈S,分配内存空间
  • DestroyStack(&L)销毁栈——销毁并释放栈S所占用的内存空间
  • Push(&S, x)进栈——若栈S未满,则将x加入使之成为新栈项
  • Pop(&S, &x)出栈——若栈S非空,则弹出栈项元素,并用x返回
  • GetTop(S, &x)读栈顶元素——若栈S非空,则用x返回栈顶元素
  • 其他常用操作:
    • StackEmpty(S):判断一个栈S是否为空。若S为空,则返回true,否则返回false

栈的常考题型

进栈顺序:a->b->c->d->e
有哪些合法的出栈顺序?


n个不同元素进栈,出栈元素不同排列的个数为 1 n + 1 C 2 n n \frac{1}{n+1}C^{n}_{2n} n+11C2nn
上述公式称为卡特兰数(Catalan),可采用数学归纳法证明(不要求掌握)
如: 1 5 + 1 C 10 5 = 10 ∗ 9 ∗ 8 ∗ 7 ∗ 6 6 ∗ 5 ∗ 4 ∗ 3 ∗ 2 ∗ 1 = 42 \frac{1}{5+1}C^{5}_{10} = \frac{10 * 9 * 8 * 7 *6}{6 * 5 * 4 * 3 * 2 * 1} = 42 5+11C105=654321109876=42

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

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

相关文章

1Panel 搭建 halo博客

线上服务器一直闲置,刷到视频 1Panel 能更好管理服务器,还能快速搭建博客,便上手试试,的确很方便,顺手记录一下。 零、准备工作 一台服务器(按需购买,此处准备的阿里云服务器一台,也…

postman教程-14-生成随机数

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了Postman关联接口的调用方法,本小节我们讲解一下Postman生成随机数的方法。 在接口测试中,经常需要向接口发送不同的输入数据,以确保接口的健壮性和可靠性。…

02-2.3.5 静态链表

喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会不断更新。🧑‍💻 此外,《程序员必备技能》专栏和《程序员必备工具》专栏(该专栏暂未开设)日后会逐步更新,感兴趣的小伙伴可以点一下订阅…

中国自动气象站:现代气象观测的中流砥柱

引言 气象观测是人类认识和预报天气的重要手段。在现代科技的推动下,自动气象站成为气象观测的重要工具,为天气预报、防灾减灾和气候研究提供了宝贵的数据支持。本文将介绍中国自动气象站的发展历程、技术特点及其在气象观测中的重要作用。 中国自动气象…

关于远程销售的电子课程开发

一家国际网络安全公司委托我们开发用于培训销售代表远程和电话销售的互动电子内容。我们在 Articulate Storyline 中创建了情节脚本和二维动画,以解释关键概念和销售技巧。互动元素使学习者可以按照自己的节奏进行学习,而我们的动画插图则使材料生动起来…

【成都信息工程大学】只考程序设计!成都信息工程大学计算机考研考情分析!

成都信息工程大学(Chengdu University of Information Technology),简称“成信大”,由中国气象局和四川省人民政府共建,入选中国首批“卓越工程师教育培养计划”、“2011计划”、“中西部高校基础能力建设工程”、四川…

运维系列.Linux下的用户管理

运维系列 Linux下的用户管理 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/ar…

LabVIEW FPGA开发NI sbRIO-9607高精度数字滤波器

使用NI sbRIO-9607硬件平台,通过LabVIEW FPGA模块实现一个高精度数字滤波器。该应用不需要额外的实时操作系统 (RT),所有控制与数据处理均在sbRIO-9607的FPGA上完成,充分利用其并行处理能力,实现低延迟、高性能的数据滤波。这种滤…

最新 Navicat Data Modeler 4 | 产品介绍

在过去的几周里,我们已经介绍了 Navicat 版本 17,现在我们来把注意力转移到另外两个值得关注的产品上,即 Navicat Data Modeler 和 Navicat BI(之前称为 Navicat Chart Creator)。今天的博客将介绍 Navicat Data Model…

AI Agent:人类工作范式的颠覆者还是人机协作新范式?

编者按: 当前大热的大语言模型和检索增强生成模型,虽然在语言理解和内容生成方面取得了突破性的进展,但仍然存在诸多限制。它们缺乏根据目标导引行为、持续学习和与环境交互的能力,难以应对复杂多变的现实场景需求。 今天为大家带…

代理IP科普:IP黑名单与IP白名单的机制与作用

在IP代理使用中,我们经常听到黑名单与白名单两个名词,它们不仅提供了强大的防御机制,还可以灵活应对不同的安全威胁。本文将详细探讨IP黑名单和白名单在网络安全中的双重屏障作用。 一、IP黑名单和白名单定义 IP黑名单与IP白名单是网络安全中…

事务管理AOP

通过事务操作 删除部门的时候,同时删除员工,那么如果其中有异常,那么就进行事务回滚 使用注解Trance Transactional-propagation(传播行为)

基于协同过滤算法的东北特产销售系统的设计

基于协同过滤算法的东北特产销售系统的设计 管理员账户功能包括:系统首页,个人中心,管理员管理,基础数据管理,公告管理,新闻信息管理,商品管理 农户账户功能包括:系统首页&#xf…

vue3学习(七)

前言 接上一篇学习笔记,今天主要是分享上次学习完了,还没来得及记录,趁今天晚上换换脑子的时间记录下。 今天主要是记录的vuex文件的拆分,因为毕竟如果只在一个index.js文件写,文件会随着业务的复杂性上升&…

从0-1实现大模型

目录 输入数据准备 滑动窗口造数据 Data sampling with a sliding window 数据加载器的输出DataLoader 位置编码Encoding word positions 自注意力机制 点积的原理 QKV的原理 实现代码 Multi-head Attention 线性层 github: LLMs-from-scratch/ch02/01_main-chapte…

MySQL之查询性能优化(六)

查询性能优化 查询优化器 9.等值传播 如果两个列的值通过等式关联,那么MySQL能够把其中一个列的WHERE条件传递到另一列上。例如,我们看下面的查询: mysql> SELECT film.film_id FROM film-> INNER JOIN film_actor USING(film_id)-> WHERE f…

四川汇聚荣聚荣科技有限公司综合实力怎么样?

在科技日新月异的今天,企业的综合实力成为衡量其市场竞争力的重要指标。四川汇聚荣聚荣科技有限公司作为一家在行业内具有一定影响力的企业,其综合实力如何,自然成为外界关注的焦点。以下将从多个维度深入分析该公司的实力。 一、公司概况与核…

排序---快速排序

前言 个人小记 一、代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define MAX_ARR 100000 #define swap(a,b)\ {\__typeof(a) __ca;\ab,b__c;\ } #define TEST(func ,arr,l,r)\ {\int nr-l;\printf("tes…

Blender + Marvelous Designer(MD)服装,Quad Remesher四边面拓扑布线、UV投射

Blender Marvelous Designer&#xff08;MD&#xff09;服装&#xff0c;Quad Remesher四边面拓扑布线、UV投射_哔哩哔哩_bilibili BlenderMD服装&#xff0c;Quad Remesher四边面拓扑和UV投射 - 哔哩哔哩 https://i0.hdslb.com/bfs/article/b3f270cb02bb6de5cc080d732dc8…

模型测试优化

针对怼螺丝孔场景交叉测试 文章目录 修改一&#xff1a;修改二&#xff1a; 基于训练场景&#xff0c;进行修改&#xff0c;用以验证泛化性 模型说明&#xff1a;训练所用的物体模型上&#xff0c;有两个孔位&#xff0c;其中左侧为1号孔位&#xff0c;右侧为2号孔位 现状&…