第三章内容总结

这两周学习了关于栈和队列的表示、操作和实现。

栈:先进后出

队:先进先出

两种线性表一般用在特定的场景。

如括号匹配用的是栈;银行排队用的是队列。

本周首先完成了括号匹配,一开始是根据书本打上关于栈的基本操作函数(入栈,出栈)

我采用的方法是顺序栈。

首先在主函数判断括号匹配 由 将所有的不符合的方式 修改成 !(符合的方式),可以很快写出判断条件;

其中有遇到非常愚蠢的问题就是左右括号弄翻以及采用了中文的括号。

在判断栈是否空的时候,由于我定义了栈顶和栈底指针 判断栈空的时候用的是(栈顶指针等于栈底指针)但是在判断是否输出条件是有点麻烦,所以改成了一个布尔类型的函数判断。

还有一个问题当时是因为采用的是顺序栈,在入栈的时候栈顶指针=入栈元素后,栈顶指针+1,在出栈的时候是栈顶指针先-1,再赋值出去,可是当初入栈的元素一直存在于数组中,造成当出栈两个元素时会与之前入栈的元素匹配了。

于是我在出栈一个元素时就把当时赋值的元素e置零,然后再次出栈。

银行排队:一开始用链队。发现打不下去,然后改了用顺序队的方式,然后通过定义两个队列,一个奇数队,一个偶数队,然后记下他们的长度,若非空,则每两个奇数队列输出再输出偶数队列,,再通过分别判断奇数队,偶数队是否空。银行队列的没有细致研究,这几天要研究下关于用链队的方法看看行不行。

结论是:对于基本操作不熟悉,需要看着书本打,希望多打多熟悉吧。

原文地址:https://www.cnblogs.com/linyulan/p/10634023.html

时间: 2024-10-11 09:00:16

第三章内容总结的相关文章

第三章内容小结

1.内容小结:在第三章的学习中我们学习到了两种特殊的线性表:栈和队列. (1)特殊性:栈:限定仅在表尾(栈顶)进行插入或者删除的线性表,后进先出. 队列:只允许在表的一端进行插入(队尾),而在另一端(队头)进行删除的线性表.先进先出. (2)存储方式:顺序存储(顺序栈:循环队列)和链式存储(链栈:链队). (3)主要操作: 栈:入栈和出栈.对于顺序栈的入栈和出栈操作前要判断栈满或栈空. 队列:入队和出队.对于顺序队的循环队列进队和出队操作要判断队满或队空.涉及队头或队尾指针的修改都要将其对MAX

Learn Prolog Now 翻译 - 第三章 - 递归 - 第四节,更多的实践和练习

在学习了前三章内容后,我们应该对Prolog编程有了直观和理性的认识.由于合一.变量初始化.证明搜索和递归都是Prolog的核心概念,所以有如下更多的一些实践和练习. 这里我会先录入题目,后期再给出我自己的程序代码和一些思考. 实践1 试想有如下的描述迷宫的知识库.其中的事实描述了点和点之间的联通关系,即connected/2谓词逻辑给出了这样的事实:迷宫中能从参数1的点,直接到达参数2的点.而且, 联通关系是有方向的.单向不能往返的: connected(1,2). connected(3,4

《增长黑客》阅读内容摘要(前三章)

<增长黑客>阅读内容摘要(前三章) 寒假无聊,偶然间看到<增长黑客>这本名气很大的书,顺便拿来读读.读到后来根本停不下来,这本书真的比电影还精彩.作者提倡的一种新的软件工程,令人叫绝. 以下是这本书前三章的内容摘要: 一.第一章 通常采用的手段包括A/B测试.搜索引擎优化.电子邮件召回.病毒营销等,而页面加载速度.注册转化率.E-mail到达水平.病毒因子这些指标成为他们日常关注的对象. 增长黑客:以数据驱动营销.以市场指导产品,通过技术化手段贯彻增长目标的人. 五个环节:1. 获

C语言探索之旅】 第一部分第四课第三章:变量的世界之显示变量内容

内容简介 1.课程大纲 2.第一部分第四课第三章:变量的世界之显示变量内容 3.第一部分第五课预告:基本运算 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 基本运算 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一、 除夕诗词概述 二、元日诗词概述 三、 元宵诗词概述 第二节:春节古诗词拾萃

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一. 除夕诗词概述 二.元日诗词概述 三. 元宵诗词概述 第二节:春节古诗词拾萃 一.腊祭诗词 二.祭灶诗词 三.除夕诗词 四.元旦诗词 五.人日诗词 六.元宵诗词 第一节:春节古诗词概述 中国的春节,作为除旧迎新的节日,时间相当长,从年前的腊月二十三,天空中就似乎弥漫了节日的气息.这种节日的气氛,在保持传统风俗较好的地方,甚至会持续到二月二龙抬头的时候,但欢度春节的高潮,应该说是自除夕始一直到上元之夜.因此,历代歌咏和反

操作系统思考 第三章 虚拟内存

第三章 虚拟内存 作者:Allen B. Downey 原文:Chapter 3 Virtual memory 译者:飞龙 协议:CC BY-NC-SA 4.0 3.1 简明信息理论 比特是二进制的数字,也是信息的单位.一个比特有两种可能的情况,写为0或者1.如果是两个比特,那就有四种可能的组合,00.01.10和11.通常,如果你有b个比特,你就可以表示2 ** b个值之一.一个字节是8个比特,所以它可以储存256个值之一. 从其它方面来讲,假设你想要储存字母表中的字母.字母共有26个,所以你

Android深度探索HAL与驱动开发 第三章

Android深度探索HAL与驱动开发 第三章 Git使用入门 读书笔记 Git是对源代码进行管理的软件. 一.安装Git # apt-get install git # apt-get install git-doc git-emall git-gui gitk 用以下命令控制Git: # apt-get install git-core # apt-get install git-doc git-svn git-email git-gui gitk 二.查看Git文档 查看git-check

我们曾经心碎的C#之 第三章.如何使用C#属性

第三章 . 如何使用C#属性 1.Private访问修饰符   访问修饰符可以用来修饰类成员字段和方法,每个访问修饰符只能为紧随其后的成员指定特定的访问权限 如果将字段或方法声明为public 就表示其他类可以访问这个字段或方法 如果为private那么该字段或方法只能在本类中使用,其他类不能访问  故对该内容有保护权限,但可以借助第三方对该内容修改 示例如下:借助带参数的声明为public的方法来传入参数进而对私有字段进行修改 定义一个dog类 姓名声明为private  然后定义一个publ

大道至简第三章读后感

---恢复内容开始--- 大道至简第三章的是团队的问题.我们知道,随着人们生活水平的不断提高,用户对计算机软件的功能要求也日趋上升.这样一来,计算机软件就变得越来越复杂,规模变得越来越庞大,源代码的量也越来越多.在这种市场需求和自身发展的共同要求之下,一个团结而高效的开发团队的作用就不言而喻了.那么如何打造一支强有力.听指挥.能干活的开发团队呢?这一章作者就这个问题和我们展开了讨论. 作者着重的强调了项目经理在开发团队中的作用.首先声明一点,这并不是说团队的开发人员不重要,作者从始至终都认为编程