数据结构括号匹配算法是什么_数据结构括号匹配算法是什么意思

数据结构括号匹配算法是什么_数据结构括号匹配算法是什么意思数据结构-第六讲 栈及括号匹配1.栈的定义及相关概念栈是这么定义的:栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称

数据结构-第六讲 栈及括号匹配
  1.栈的定义及相关概念

  栈是这么定义的:

  栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

  运算受限:也就是这个表你不能随便的删除插入。只能按照它的规则进行插入删除。比如栈就只能在一端进行插入和删除。同样,队列也是运算受限,只能在两头操作。

  线性表:栈也是一种线性表,前面详细介绍过线性表,它表达的是一种数据的逻辑关系。也就是在栈内各个元素是相邻的。当然在具体实现上也分数组和链表实现,他们的物理存储结构不同。但是逻辑结构(实现的目的)相同。

  栈顶栈底: 这个描述是偏向于逻辑上的内容,因为大家知道数组在末尾插入删除更容易,而单链表通常在头插入删除更容易。所以数组可以用末尾做栈顶,而链表可以头做栈顶。

  栈的应用: 栈的应用广泛,比如你的程序执行查看调用堆栈、计算机四则加减运算、算法的非递归形式、括号匹配问题等等。所以栈也是必须掌握的一门数据结构。最简单大家都经历过,你拿一本书上下叠在一起,就是一个后进先出的过程,你可以把它看成一个栈。

  2.栈的代码

  老师的代码

  分析:

  1.初始化

  2.push插入

  数据结构括号匹配算法是什么_数据结构括号匹配算法是什么意思

  数据结构括号匹配算法是什么_数据结构括号匹配算法是什么意思

  3.入栈和出栈

  4.提取top

  5.测试

  3.括号匹配问题

  我的学习总结:

  方法:

  解决括号匹配问题最常见的方法是借助于栈这种数据结构。栈是一种先进后出(FILO)的线性表,它只允许在一端进行插入和删除操作。我们可以把栈想象成一摞盘子,只能从上面放盘子或者取盘子。栈有以下几种基本操作:
初始化栈:创建一个空栈,没有任何元素。压栈(push):在栈顶插入一个元素,栈的长度增加一。弹栈(pop):删除栈顶的元素,并返回它,栈的长度减少一。判断栈空(empty):如果栈没有任何元素,返回真,否则返回假。判断栈满(full):如果栈的长度达到了最大容量,返回真,否则返回假。栈顶元素(gettop):返回栈顶的元素,但不删除它,栈的长度不变。

  使用栈来解决括号匹配问题的算法思路如下:
初始化一个空栈,用来存放左括号。从左到右逐个字符扫描字符串,对于每个字符:
如果是左括号,就压入栈中。如果是右括号,就弹出栈顶元素,并判断它们是否匹配:
如果匹配,就继续扫描下一个字符。如果不匹配,就说明字符串不合法,结束算法。如果字符串扫描完毕,还要判断栈是否为空:
如果为空,就说明字符串合法,结束算法。如果不为空,就说明字符串不合法,结束算法。

  我的代码 :

  数据结构括号匹配算法是什么_数据结构括号匹配算法是什么意思

  数据结构括号匹配算法是什么_数据结构括号匹配算法是什么意思

激活谷谷主为您准备了激活教程,为节约您的时间请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/91199.html

(0)
上一篇 2024年 6月 2日
下一篇 2024年 6月 2日

相关推荐

  • maya实时渲染打不开怎么回事

    maya实时渲染打不开怎么回事今天给大家分享一下Maya学习过程中遇到的困难和解决方法:(1)一次性删除所有帧的方法import的文件如果原来有动画的话,导入的新文件里面会保留原来的动画!所以在新的文件要记得把动画的帧都删掉啊!不然就会出现明明没有关键帧,但是模

    激活谷笔记 2024年 5月 18日
  • 单片机的c语言编程和普通的c语言编程的差异性区别_单片机c语言和普通c语言的不同

    单片机的c语言编程和普通的c语言编程的差异性区别_单片机c语言和普通c语言的不同[ 爱找茬 ]都是C语言,单片机C语言和普通的C语言究竟有什么差异呢?许多小伙伴在学完C语言后想入门单片机,但学着学着发现明明都是C语言,为什么单片机C语言和我当初学的C语言有差异呢?今天小编就来梳理我们平时所学的

    2024年 5月 21日
  • pycharm2020.2.3专业版激活码_pycharm激活码2019

    pycharm2020.2.3专业版激活码_pycharm激活码2019pycharm激活码免费分享适用最新pycharm2020.2.3永久激活如果你的Pycharm提示过期可以使用下面这个最新的Pycharm激活码,适用最新版的Pycharm 2020.2.3,老版本的Pycharm 2018,Pycharm2019也可以使用,可成功激活到2089

    2024年 5月 16日
  • mybatisplus 联表查询_工作中不推荐mybatisplus

    mybatisplus 联表查询_工作中不推荐mybatisplus工作中能用到Mybatis-plus吗?各位大佬,最近在学习java,我想问知道,目前工作中能用到Mybatis-plus吗,和jpa相比,那个使用会多些一. MP简介我们知道Mybatis属于一个半自动的O

    2024年 5月 15日
  • xshell读法_Xshell免费的密钥

    xshell读法_Xshell免费的密钥使用密钥登录云主机使用密钥登录云主机通常 Linux、Mac 系统客户端能方便地生成密钥,并且执行 ssh 时,有默认的密钥路径,所以推荐用户自己生成的密钥来登录云主机。而 Windows 系统的登录软件通常没有自己生成密

    2024年 5月 17日
  • word文档手机版_如何把图片转换成word文档

    word文档手机版_如何把图片转换成word文档手机图片如何转化为word文档?5个技巧现如今手机已经是我们生活中不可或缺的一部分,不管是工作中还是出去玩的时候我们都会使用手机拍摄照片,但有时我们可能希望将这些照片转化为Word文档,以便更好地编辑或传输。那么伙伴们知道该怎么转换吗?下面我们就分享5个可以达成转

    2024年 5月 11日
  • 数组指针赋值问题有哪些

    数组指针赋值问题有哪些C提供了指针的一些基本操作,先来看赋值。一、赋值指针赋值可以有以下几种形式1.使用数组名2.使用带地址运算符(&)的变量3.另一个指针通过一个代码示例来演示#include<stdio.h>int main(void){int arr[5] = {100,200,300,400,5

    激活谷笔记 2024年 5月 18日
  • strcat函数头文件_strcat函数的头文件

    strcat函数头文件_strcat函数的头文件strcat函数详解:字符串【追加】的利器目录一,strcat函数的简介二,strcat函数的使用三,strcat函数的注意事项四,strcat函数的模拟实现一,strcat函数的简介strcat函数用于将源字

    2024年 5月 29日
  • Goland激活2024.1.2(CLion 2024.1最新版免费激活激活成功教程安装教程(附激活工具+激活码)-持续更新永久维护)

    Goland激活2024.1.2(CLion 2024.1最新版免费激活激活成功教程安装教程(附激活工具+激活码)-持续更新永久维护)

    2024年 6月 7日
  • splashes翻译_splashes翻译成中文

    splashes翻译_splashes翻译成中文splashes用作动词 (v.) splash about〔around〕 (v.+adv.)

    激活谷笔记 2024年 5月 28日
  • RelativeLayout特有的属性吗

    RelativeLayout特有的属性吗Android App开发基础篇—常用布局简介前言:每一个App都有许多个界面,有了界面再来加载显示数据。Android提供了一些布局和控件(以下统称为组件),方便开发者进行界面的搭建,如GridLayout、FrameLayout、LinearLayout、RelativeLayout、T

    激活谷笔记 2024年 5月 18日
  • ms56镜片是什么意思

    ms56镜片是什么意思选镜框的正确打开方式,尤其是中高度近视每一副镜架的尺寸都会在镜腿上标注,首先记住这个尺寸!一般标记为:56口15-148,其中56代表镜面的宽度,15代表中梁的宽度,148代表镜腿的长度。单位是mm(毫米)为什么同样度数人家配出来镜片很薄?你配出来的就很厚很难看?问题就是如果你

    激活谷笔记 2024年 5月 20日
关注微信