博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第3章学习小结
阅读量:5299 次
发布时间:2019-06-14

本文共 1385 字,大约阅读时间需要 4 分钟。

  这章讲了栈和队列的特点是后进先出队列的特点是先进先出,这些都不是重点,重点是遇到问题要知道用哪种数据结构。

  比如数制的转换,(1348)10=(2504)8,它的计算过程是

      N       N /8          N%8

                  1348      168            4

                   168         21            0

                     21         2              5

                     2            0              2

可以看出要得到(1348)10的8进制,首先求出的是最后一位的数字4,最后求出的是第一位的数字2

显然我们要把4  0   5  2四个数字先存起来

然后再倒过来输出,即输出2504

怎么存这四个数字呢?

用数组存?当然可以,你只需要多开一个变量p,记录数组当前有多少个数字,顺便把p当成下标用。

处理的时候就要注意细节,比如第一个数的下标是不是0,输出的时候是从后往前输出,还要注意边界。

用栈来存?当然可以,你只需要4  0   5  2依次压入栈,算完后全部出栈就可以了。

但是用栈来存的话,相当于划分了层次,同一时间思考的层次不同,再举个栗子

拿括号匹配的题目来说()【】 {}

遇到左括号,用数组做的话:

    if(遇到左括号){

      p++;

      左括号放入数组;

    }

     用做的话:

    if(遇到左括号){

      左括号入栈;

    }

看出直接用数组来做多了一步下标的移动,实际上使用栈也存在下标的移动(如果用顺序栈),只不过在main函数中不需要考虑,

在写栈函数的时候才需要考虑这个问题(STL真好用)

这就相当于划分了层次

就遇到左括号这一步来说

直接用数组做,你要考虑下标,还要考虑存放问题

用栈做,你只需要考虑入栈

使用栈来解决这个问题,在同一时刻可以减少关注的东西,敲代码的时候就可以减少错误

这就相当于   c++  ——>  数据结构   的飞越

栈的引入简化了程序设计的问题,划分了不同的关注层次,使思考范围缩小了。(划重点)

作业的编程题就是括号匹配问题,注意敲代码最好先把思路写下来就行了,因为敲代码时注意了细节,但有可能忽略了全局。

上次博客的目标达到了(a完T1的题)

可惜的是天梯赛1-8没有a出来,我想了下原因主要是我对数据的存储和一些函数不是很了解

(画横线的是我的输入)

在打敲笨钟那题时,交代码后提示我格式错误,当时一脸懵逼。

后来仔细一看,原来是多了换行。

cin.getline(a,1003,'.');中,遇到‘.’停止读入,并把'.'变成了'\n',对于计算机来说,我这里进行了三次输入,计算机看到的是

qiao ben zhong.[空格]qiao ben zhong.[空格]qiao ben zhong.[空格]

处理后就是qiao ben zhong\nqiao ben zhong\nqiao ben zhong\n

三次a的内容分别是:1.qiao ben zhong

           2.\nqiao ben zhong

              3.\nqiao ben zhong

所以才会出现上面那种输出(上面分析只是我根据输出进行的猜测,希望有大佬分享一下经验

 

 把‘\n’吸掉就没事了(当时没想到......)

接下来的目标是:把线段树专题打完,好好做一个组员

 

转载于:https://www.cnblogs.com/Remilia-Scarlet/p/10630594.html

你可能感兴趣的文章
互联网协议入门(一)
查看>>
Air Max 1 Men's Shoe Black/Team Red [NIKE-NO.12030]
查看>>
16_Python变量作用域_Python编程之路
查看>>
js 数组,字符串,json互相转换(在select实现多个输入的时候与后台交互常使用)...
查看>>
js index of()用法
查看>>
XSS原理及防范
查看>>
WPF中Image显示本地图片
查看>>
SVN版本管理
查看>>
哈希表等概率情况下查找成功和查找不成功的平均查找长度的计算
查看>>
SQL 操作结果集 -并集、差集、交集、结果集排序
查看>>
flume监控
查看>>
无法重启ssh
查看>>
Bugly热更新——初探
查看>>
ios12--简易购物车
查看>>
go17---并发
查看>>
守护线程
查看>>
VC++中使用MFC通过ADO连接数据库
查看>>
JavaScript验证注册信息
查看>>
延时加载图片
查看>>
C++库(Thrift)
查看>>