严蔚敏数据结构学习笔记三.栈和队列

【数据结构系列】严蔚敏C语言版算法实现并附带详细注释(逐步更新) 数据结构在编程过程中是不可或缺的,是举足轻重的,想要编写出一个好的程序,学好数据结构这门学科是必经之路。本文是各种数据结构实现的目录文章,我会在我学习数据结构这门课程的过程中逐步更新其中的内容。................................. 阅读详情

第三章.栈和队列

3.1栈的类型定义(存在栈顶,栈底)
相对于线性表特点为:插入和删除只能在特定的地方进行。
3.2栈的应用举例
1,数制转换,
2.括号匹配的检验,
检验括号是否匹配的方法用"期待的急迫程度"这个概念来描述。
分析可能出现的不匹配的情况:
1),到来的右括弧非是所"期待"的(和栈顶元素不相等);
2),到来的是"不速之客"(栈以经空,表达式没还有右括弧);
3),直到结束,也没有到来所"期待"的(栈不空,表达式结束);
算法的设计思想:
1),凡出现左括弧,则进栈;
2),凡出现右括弧,首先检查栈是否空,若栈空,则表明"右括弧"多了否则和栈顶元素比较,若相等,则"左括弧出栈"否则不匹配
3),表达式检验结束时,若栈空,则匹配正确,否则表明"左括弧"多了。
3,行编辑程序问题,
设立一个输入缓冲区,用以接受用户输入的一行字符,然后逐行存入用户数据区。
4,迷宫求解,
基本思想:
1),若当前位置"可通",则纳入路径,继续前进
2),若当前位置"不可通",则后退,换向探索
3),若四周均"不可通",则从路径中删除
5,表达式求值,

表达式分为:前缀式,中缀式,后缀式
特点:1,操作数之间的相对次序不变;
2,运算符的相对次序不同;
3,中缀式丢失了括弧信息,致使运算的次序不确定;
4,前缀式的运算规则为:连续出现的两个操作数和在它们之前紧靠它们的运算符构成一个最小表达式;
5,后缀式的运算规则为:运算符在式中出现的顺序恰为表达式的运算顺序;每个运算符和在它之前出现且紧靠它的两个操作数构成一个最小表达式。
后缀式求值方法:先找运算符(保存在栈中),再找操作数。
从原表达式求得后缀式的规律为:
1),设立操作数栈;
2),设表达式的结束符为"#",并设运算符栈的栈底为"#";
3),若当前字符是操作数,则直接发送给后缀式;
4),若当前运算符的优先数高于栈顶运算符,则进栈;
5),否则,退出栈顶运算符发送给后缀式;
6),"("对它之前后的运算符起隔离作用,")"可视为自相应左括弧开始的表达式结束;
6,实现递归。
当一个函数的运行期间调用另一个函数时,在运行该被调用函数之前,需先完成三件事:
1),将所有的实参,返回地址等信息传递给被调用函数保存;
2),为被调用函数的局部变量分配存储区;
3),将控制转移到被调用函数的入口。
从被调用函数返回调用函数之前,应该完成:
1),保存被调函数的计算结果;
2),释放被调用函数的数据区;
3),依照被调用函数保存的返回地址将控制转移到调用函数。
多个函数嵌套调用的规则是:后调用先返回此时的内存管理实行"栈式管理"
3.3栈类型的实现(顺序栈,链栈)
3.4队列的类型定义
存在队头,队尾
3.5队列类型的实现(链队列--链式映象,循环队列--顺序映象)

例题算法
判别读入的字符序列是否为"回文"的算法的基本思想是:将依次读入的字符分别插入栈和队列,然后依次比较"栈顶"和"队头"的字符。

 
清华大学严蔚敏吴伟民《数据结构》精讲与栈队列实战解析 数据结构是计算机科学的核心基础之一,它研究数据的组织方式、存储形式及操作逻辑,直接影响算法效率与系统性能。掌握栈、队列等基础结构不仅是理解复杂系统(如编译器、操作系统)的前提,更是提升编程思维的关键路径。本课程通过理论与实践结合,帮助开发者从底层构建高效的程序模型。栈(Stack)是一种特殊的线性数据结构,其最显著的特征是后进先出这意味着最后一个被压入栈的元素将第一个被弹出。这种行为模式类似于现实世界中的“一摞盘子”:你只能从顶部取走或放上盘子,无法从中途操作。 阅读详情

相关推荐

严蔚敏数据结构教材完整学习包

本文还有配套的精品资源,点击获取 简介:《严蔚敏数据结构》是一本深入浅出地介绍数据结构的教材,由著名计算机科学家严蔚敏教授编写。它涵盖了计算机科学中组织、存储和检索数据的核心概念,并与算法紧密相关,为构建高效软件系统提供基础。该学习包提供了PDF和TXT两种格式的资料,满足不同用户的阅读和学习需求。教材内包含线性结构、栈与队列、树形结构、图、排序与查找、文件结构、动态规划、...

weixin_42433737的博客 1605

数据结构(C语言版)严蔚敏->用栈求解表达式(中缀表达式、后缀表达式)

主要讲述用栈求解表达式(中缀表达式、后缀表达式)

坚持不懈的大白的博客 1825

算法为急迫程度的符号匹配

数据结构,用堆栈的方法进行符号匹配,算法是期待的急迫程度

《严蔚敏数据结构_08》

基本概念 在表达式的前缀式、中缀式、后缀式里是没有括弧的 无论表达式采用哪种方式操作数的相对位置是不变的,不同的只是操作数的位置 中缀式丢失了括弧信息致使运算次序不确定 前缀式的运算规则:连续出现的两个操作数和在它们之前且紧靠它们的运算符构成一个最小表达式 后缀表达式的运算规则:运算符在式中的出现顺序与元表达式中的计算顺序一致 求后缀表达式:先求

Welcome 1083

逆变器专题(9)-基于dq坐标系的逆变器解耦控制建模与实时仿真分析

本文深入探讨了基于dq坐标系的逆变器解耦控制建模与实时仿真分析。通过生动的比喻和详细的数学推导,阐述了如何通过坐标变换和前馈补偿实现d轴与q轴的独立控制,从而提升系统动态性能与稳定性。文章还介绍了在MATLAB/Simulink中搭建仿真模型、分析动态响应与稳定性的方法,并展望了硬件在环(HIL)实时仿真的高级验证手段,为新能源并网与电机驱动领域的工程师提供了宝贵的实践指南。

gold的博客 547

一种基于改进YOLOv8并与ORB-SLAM3融合的动态环境密集点云同步定位与建图(SLAM)方法

文章提出了一种基于改进 YOLOv8 与 ORB-SLAM3 融合的动态环境稠密点云 SLAM 方法,通过引入GSConv 卷积模块和VoVGSCSP 特征融合模块优化 YOLOv8 的轻量性,结合实时目标检测与语义分割技术去除动态特征点,显著提升了动态场景下的位姿估计精度。

2401_87345388的博客 1942

数据结构(8):栈的括号匹配的实现

问题描述 假设表达式中允许包含三种括号:圆括号和方括号和大括号,其嵌套的顺序随意,即( [ ] ( ) )或者[ ( [ ] ) ]为正确格式,[(])或(()]均为不正确的格式,检验括号是否匹配的方法可用"期待的破却程度"来描述。 算法的设计思想: 1)凡出现左括弧,则进栈; 2)凡出现右括弧,首先检查栈是否空? 若栈空,则表明该“右括弧”多余 否则和栈顶元素比较, 若相匹配,则“左括弧出栈” ...

欢迎来到关关雎鸠儿的博客 648

Unity资源逆向解析:从APK到AssetStudio的完整实战

本文详细介绍了Unity资源逆向解析的全流程,从APK解包到使用AssetStudio深度解析Unity游戏资源。通过实战案例演示如何提取《植物大战僵尸》等游戏的素材,包括贴图、音频和3D模型,帮助开发者掌握Unity游戏逆向工程的核心技术。

weixin_30664051的博客 475

C语言--简易表达式求值(栈的初步应用)

文章目录前言思路核心代码 前言 表达式求值是栈应用的一个典型的应用实例。 在计算机中,任何一个表达式都是由运算符和操作数构成的。今天我讨论的是运算符仅含有 + - * / ()的情况。 思路 我们首先建立两个栈,一个用于存放运算符,一个用于存放操作数 然后获取一个表达式,对表达式从左向右扫描,因为要符合算术运算先乘除后加减的运算规则,故并不是遇见一个运算符就可以进行运算,要与上一次遇见的运算符进...

吃橘子 6471

海康威视国内版监控设备改英文界面难题:原因解析与解决方案

跨境安防设备部署中,国内采购的海康威视监控设备常因仅支持中文界面导致海外用户无法操作。本文剖析了该问题的核心原因:海康威视对国内版和海外版设备实行区域锁定策略,国内版固件仅内置中文且无法通过常规方式切换语言。针对此问题,文章提供了三种解决方案:1)官方合规的海外版固件更换;2)低成本的操作界面翻译与远程协助;3)长期更换海外版设备的彻底解决方案。同时给出了跨境采购的注意事项,强调应提前确认设备版本、拒绝非官方改造并预留适配时间。

海康威视技术支持 3967

别再死磕文档了!用国产MBSES软件5分钟上手MBSE建模(保姆级图文教程)

本文通过国产MBSES软件,详细演示了如何在5分钟内完成智能家居系统的MBSE建模。从模块图定义到状态机图构建,再到参数约束验证,全程图文指导,帮助工程师快速掌握基于模型的系统工程方法,显著提升复杂系统设计效率。

weixin_26833503的博客 239

顺序栈的应用:括号匹配(内含原理和完整代码实现)

一、原理 题设:在表达式中,只有【】和()两种括号,如(【】)【(【】【】)】等为正确格式,【(】)或【()或(()】)均为不正确格式。编写程序检验表达式序列是否正确。 检验方法描述:“期待的急迫程度” 可能出现的不匹配的情况: ①到来的有括号不是所“期待的” ②盗来的是“不速之客”; ③直到结束,也没有到来所“期待”的括号; 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as

weixin_46772309的博客 3119

华为OD技术面八股文_C++_01

汇总华为OD技术面C++方向八股文真题,并提供详细解答。

qq_45776114的博客 1889

数据结构(C语言版) 第 三 章 栈与队列 知识梳理 + 作业习题详解

目录一、栈0.栈的基本概念二、队列0.队列的基本概念三、考研试题五、作业习题 本系列博客为《数据结构》(C语言版)的学习笔记(上课笔记),仅用于学习交流和自我复习 数据结构合集链接: 《数据结构》C语言版(严蔚敏版) 全书知识梳理(超详细清晰易懂) 一、栈 栈(stack)(last infirst out)(stack)(last \ in first\ out)(st...

繁凡さん的博客 3万+

向华为学习——解读158页 华为敏捷园区网技术解决方案【附全文阅读】

华为敏捷园区网解决方案通过策略随行和体验随身技术,满足移动办公场景下的网络需求。该方案采用敏捷交换机和防火墙自动执行策略配置,实现用户身份认证与业务策略的无缝衔接,且策略配置与IP地址解耦,简化了管理流程。相比传统技术,该方案有效解决了用户分级、QoS保障、无线接入等关键问题,确保用户在移动过程中获得一致的网络体验。

cdfunlove的博客 381

【示波器专题】无源探头的常用附件

使用探头进行测试,我们不仅要知道探头的原理,还需要了解探头的常用附件及其使用方式,这样才能在尽可能在测试中提高效率且减少出错的概率

一点硬件 693

2021-10-16【严蔚敏数据结构代码实现合集】【c语言学习必备】

线性表 2021-9-14【数据结构/严蔚敏】【顺序表】【代码实现算法2.1-2.7】 2021-9-18【数据结构/严蔚敏】【单链表】【代码实现算法2.8-2.12】 2021-9-18【数据结构/严蔚敏】【静态链表】【代码实现算法2.13-2.17】 2021-9-19【数据结构/严蔚敏】【双向链表】【代码实现算法2.18-2.19】 2021-9-19【数据结构/严蔚敏】【带头结点的线性表】【代码实现算法2.20-2.21】 2021-9-19【数据结构/严蔚敏】【一元多项式的表示及相加、相减、相乘

eternity_memory的博客 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

栈和队列-第3章-《数据结构题集》习题解析-严蔚敏吴伟民版

习题集解析部分 第3章 栈和队列 ——《数据结构题集》-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接☛☛☛ 《数据结构》课本源码合辑        习题集全解析  链接☛☛☛ 《数据结构题集》习题解析合辑         相关测试数据下载  链接☛ 数据包   ...

weixin_34388207的博客 2996

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【数据结构复习之路】栈和队列(本站最全最详细讲解)& 严蔚敏版

万字详解,主打基础,看完保证让你收获满满ε٩(๑> ₃

m0_74215326的博客 2811

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(五)——栈和队列...

栈的顺序表实现 1 #include <iostream> 2 #include <stdlib.h> 3 #include <stdio.h> 4 #define MAXSIZE 1024 5 using namespace std; 6 typedef int Elemtype; 7 typedef struct ...

weixin_30535843的博客 2453

《数据结构》| 第三章 栈和队列 知识梳理

 栈和队列 目录  栈和队列 1.理解解栈、队列的基本概念及其抽象数据类型。 2.熟练掌握两种栈(顺序栈、链式栈)的入桟、出栈操作,并能利用栈解决实际问题。 3.熟练掌握两种队列(顺序循环队列、链式队列)的入队、出队操作,并能利用队列解决实际问题。 系列索引:《数据结构》C语言版 (清华严蔚敏考研版) 全书知识梳理   1.理解解栈、队列的基本概念及其抽象数据类型。...

12 26 25 的博客 2万+

数据结构(C语言严蔚敏版)——第三章 栈和队列

和栈相反,队列(queue)是一种先进先出(first in first out ,缩写为FIFO)的线性表。它只允许在表的一端进行插入,而在另一端删除元素。在队列中,允许插入的一端叫做队尾(rear),允许删除的一端则称为队头(front)。

2301_80818909的博客 2677

数据结构--第三章 栈和队列

注:根据严蔚敏等人的数据结构(C语言版)(第二版)记录,用于自己的复习记录。

m0_48858329的博客 1243

栈和队列-第3章-《数据结构习题集》答案解析-严蔚敏吴伟民版

严蔚敏吴伟民版《数据结构习题集》第3章栈和队列部分答案+习题解析。

StrayedKing-245176013 4万+

数据结构(C语言版)严蔚敏 习题详解(持续更新!)

笔者中山大学硕士,医学生+计科学生的集合体,机器学习爱好者。 现在正在进行数据结构的学习。 听的课程的是 MOOC浙江大学2012版。 学习教材为 数据结构(C语言版)严蔚敏 吴伟民 清华大学出版社 现分享总结的部分习题详细解析。欢迎批评指正! 为方便查阅,直接给出各章节部分习题详细解析的知乎链接。 数据结构(C语言版)严蔚敏——第一章 绪论(预备知识) 数据结构(C语言版)严蔚敏——第二章 线性...

Yukyin 3481

IT女神节(致敬中国IT界永远的女神严蔚敏-数据结构)

我们都知道程序=数据结构+算法。相信很多人都学过严蔚敏的数据结构的课程。作为一个码农,在这不管是3.7女神节,还是3.8妇女节。我觉得都有必要向这些教育界的老前辈致敬。今天我就梳理梳理,最经典的数据结构教材。

JAVA领域优质创作者,基于分片网络查询方法专利发明者。 3575
上一篇: 严蔚敏数据结构学习笔记二.线性表
下一篇: 严蔚敏数据结构学习笔记五.数组和广义表
geting
博客等级 码龄20年 13粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值