第三章小结

第三章学习了栈和队列。

有一个要搞清楚的点是 栈和队列的每一次操作都只对一个元素起作用。之前在学习计概这门课的时候,就已经接触了栈和队列的知识,知道LIFO和FIFO结构。但是没有学太深。

现在知道了栈和队列的作用以及一些基本的算法和主要操作。

总结:

(1)顺序栈与链栈

主要操作:1.InitStack(SqStacke &S)(初始化)2.Push(SqStack &S,SElemType e)(入栈)3.Pop(SqStack &S,SElemType &e)(出栈)4.判断栈空栈满

if(S.top==S.base) return ERROR;(判断栈空)

if(S.top-S.base==S.stacksize) return ERROR;(判断栈满)

链栈不用判断栈满

(2)循环队列(顺序队列)与链队

主要操作:1.InitQueue(SqQueue &Q)  (初始化)2.EnQueue(SqQueue &Q,QElemType e)(入队) 3.DeQueue(SqQueue &Q,QElemType &e)(出队)

4.判断队空队满

if(Q.front==Q.rear) return ERROR;(判断队空)

if((Q.rear+1)%MAXSIZE==Q.front) return ERROR;(判断队满)

在入栈,入队前先判断是否栈满,队满

在出栈,出队前先判断是否栈空,队空

在做括号匹配这道题时,我一开始没有思路,还是在老师讲了之后才做出来的。而且我之前没有思路,也没有积极的去查资料什么的,所以就放着。下次就要先自己锻炼自己的思考能力,这样才能提高能力。

然后实践题还没有完全做对。但是我有思路要怎么做。后来看到课本的舞伴问题,我先把它理顺了,分成奇数队列和偶数队列,将输入判断后分别入队奇数队列和偶数队列,然后在按题目要求的奇数两个,偶数一个的这种插空输出,将奇数队列的元素出队,偶数队列的元素出队,再入队到一个新的队列里,再按输出要求出队新队列。因为没有考虑到奇数队列多一点或偶数队列多一点的情况,所以错误。以我的水平,也并不是一下子,就能写出它的实现,我参考了别人博客的代码,https://blog.csdn.net/lml_l_l/article/details/79350932,才完成了实现。还有一个错误待解决。

学习困难:就是在学习链栈的时候和链队的时候有点难记,理清楚它的算法 并很好地运用这种。

解决:看书时间投入不够多,所以要在课前多预习以及复习。

学习目标:上个星期的目标课堂效果吸收还算好,就是自己的投入还不够。在老师的帮助理清思路与实现后,括号匹配那道题其实没有花太多时间,比以前的效率高很多。所以算完成一半。剩下的是长期的坚持了。就是下次,我能提前动手做做作业,先仔细想想,做题时能有较清晰地思路过程。然后碰到不能解决的问题能积极的问,在课堂上听课的同时跟上老师的思路,课后复习要做好。

原文地址:https://www.cnblogs.com/hqx123/p/10626357.html

时间: 2024-10-11 04:40:53

第三章小结的相关文章

第三章小结--栈与队列

第三章小结 第三章我们主要学习了栈和队列.经过第一次的写博客,与课后的学习与借鉴.我看到很多其他的同学在整理知识的时候采用了画大纲图,架构图的方法.不得不说,那样子确实比纯粹的文字更加简单明了.于是我决定也学习和效仿一下. 以下便是图解: 通过大图来看,很明显,和前面学习的顺序表,链表栈和队列的操作有同工异曲之妙.实际上围绕着栈和队列的也是分为两大分支,顺序表和链表.操作也是从初始化,插入,删除,查找几个操作入手. 当然,也有不同的地方,栈是典型的先进而后出,队列则是先进先出,其插入和删除的操作

汇编语言第三章小结

第三章 内存访问 字数据在内存中的存储 1.      内存以字节为单位,划分为若干个单元 2.      字数据的存-取原则:高-高  低-低(小端法) 即: ① 字数据的低位字节存放在低地址内存单元 字数据的高位字节存放在高地址内存单元 ② 取低地址内存单元地址作为字数据地址 例1: 字数据124EH的地址是( 1 ) 字数据3020H存入内存后地址为4,则4存放( 30H ),3存放( 20H ) 例2: 从地址单元1取出一个 (1)     字节数据为:  4EH (2)     字数据

DS第三章小结

一.你对本章内容的小结 本章主要讲了两种特殊的线性表,栈和队列.栈是仅在表尾进行插入或删除操作且后进先出(LIFO)的线性表,而队列则是在表的一端插入,另一端删除元素且先进先出(FIFO)的线性表.同时,课本的案例引入告诉我们,栈可以解决数值的转换,括号匹配的检验问题:而队列因其结构的吻合可以用了舞伴问题. 下面是本章的思维导图.对我来说,第三章比第二章更抽象,晦涩,难懂,仍然需要通过练习来对机械地吸收的知识加以运用. 二.完成作业实践时的心得体会 首先还是要多看课本,把基本的入栈,出栈,入队,

JAVA-初步认识-第三章-小结

一. 概论 第三章讲述的是JAVA语言基础,分为八个部分:关键字,标识符,注释,常量和变量,运算符,语句,函数和数组. →运算符(对于某种操作,浓缩为符号,上层的程序员采用这种符号.底层根据符号的不同,对数据做出不同的操作.) →要了解运算符的本质.→运算符的诞生,还是源于计算机程序语言的设计特点决定的. →计算机语言是对现实世界的,解析,重构.(用特定的计算机语言结构,但是最终的结果是一样的,过程也是一样的,和现实中的计算相比) 注意:用另一种方式,来重现现实世界的过程和结果. 用运算符对一些

第三章学习小结—-转

[学习目标] 01掌握一维数组的声明和使用方法(OK) 02掌握二维数组的声明和使用方法(OK) 03掌握字符串的声明.赋值.比较和连接方法(连接很少用) 04熟悉字符的ASCII码和ctype.h中的字符函数 05正确认识++.+=等能修改变量的运算符(OK) 06学会用编译选项-Wall获得更多的警告信息(OK) 07了解不同操作系统中换行符的表示方法(嗯) 08掌握fgetc和getchar的使用方法(fgetc基本没用过) 09掌握预处理和迭代开发的技巧(嗯) 程序3-1 逆序输出 输入

第三章内容小结

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

ch3第三章的小结——杨智雯

第四周c++学习情况. 学习情况:周一在实验室上了第三章的输入输出流,上课状态良好,老师讲的都明白了.周三老师讲解了师兄给我解释过的数组问题,但是还是不是很懂,了解了直接用c1之类的字符型直接加减数字来使输出发生变化,并学习了如何使字符型变量变成表格中的数字号码. 遇到的困难:可是ch3中的编程作业统计和保留小数的问题,老师应该是没有讲到的,我并不会啊!!/(ㄒoㄒ)/~~咨询了师兄,可是按照师兄的解法还是输出不了啊!!!实验二的内容经过老师的讲解基本上都解决了问题,再acm培训课程中也了解了具

第三章学习小结

第三章主要学习了关于栈和队列的知识,知道了有关栈和队列的初始化和基本操作.栈是只在一头进行插入与删除操作的数据结构,而队列是可以在两头进行插入与删除操作的数据结构.此外栈和队列分别可以分为链栈与顺序栈,链队与顺序队列.栈的特点是先进后出,队列的特点是先进先出. 在这里分享有关栈的函数: #include <stack> //头文件 stack <elemtype> L //定义栈 push():L.push(x) 将数据x放在栈顶 top():L.top()返回栈顶元素 pop()

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