00:00
同学们,我们来写一段代码,来测试一下我们这个站到底能不能使用,对吧?我们来测试一下。这个or是否正确?是否正确对不对,那现在呢,我们就来开始玩一把呗,先创建第一个,先创建一个吧,先创。创建啊一个。奥克的一个对象。是不是这个就表示一个,它就它就表示表示一个赞嘛,它就表示一个赞,好那现在六一个2STA,那大小呢,为了好测试,我们给它四个大小好吧。OK,那这个整完了过后呢,我们直接就叫sta吧。好,这个写完以后,下面的代码呢,我们来做这样几个操作,因为待会儿呢,我们要输东西,所以说我先写个K。一个空串。
01:01
好,然后呢,我们这设置一个布尔值布。这个变量呢,默认为true,这个是用来控制是否退出,退出这个菜单,好吧,然后呢,现在呢,我们又一个scanner scanner同学们前面都学过,可以用来。啊,可以用来。得到一个扫描器,看到好,现在呢,我们CCRCSTEM.in啊快速写一下,然后呢,拿到一个扫描器,拿到扫描器过后呢,我这里用一个Y循啊,咱们整个啊同学们,扫描器拿到过后,咱们写一个Y循环。Loop。对不对,Loop。好录完了过后,我们这边把菜单打出来。就快速的写一下受表示显示站。没问题吧,另外几个呢,咱们复制一下,然后如果输入输出这个叫退出站。
02:06
叫退出站。退出或者退出程序了,对吧,这叫退出,退出我们的这个程序。那么再来一个,比如说他说的是push,就表示干什么呢?表示添加数据到站,表示添加数据到站没问题吧,我们如果说的是pop,表示干什么呢?表示从站,从站取出数据。其实就是我们的出站操作,这个就是入站操作。这个就是入战。这个呢,就是我们所说的出战是不是好,这几个写完了过后呢,同学们,下面我们就来接收一把这个K。对不对,好,我这里提示他一句话说,请输入请请输入你的你的选择。
03:04
好,输完了之后我们接收一把,用K来接收,用扫描器快速的。搜一下next。然后呢,我们用Switch进行一个简单的判断,Switch好,这里面有几个判断呢,比如说如果他输的是受,那么我们就调用这个占里面的哪个方法,同学们是不是他的类似的方法搞定了。好,那么如果他输的是什么呢?来我们解一下,如果他输的是push。那如果是push的话,是不是我们就先要提示他,请他输入一个数,我们才能把它放进去是吧,就说请输入一个数。那么这个时候呢,我就接收一个value,等于scan扫描器next int,因为我现在呢,站里面放的都是int类型的,是不是好,然后拿到过后我就用这个stock。
04:04
哎,这写错了啊,Sta ST SK点什么push。Push这个value就可以了。是不是这样子的,那么如果他给我输的是一个泡泡,是不是代表他要出战?出站的时候大家注意看到啊,出站它这有可能会有一个运行时异常抛出,因此呢,我们需要catch,然后来判断他到底是一个什么样的情况,所以说我踹一下try catch1把。能理解我意思吧,好,先,我接收到一个结果。接收到一个结果,用sta。点pop。Pop如果说他没有抛出异常,那么继续往下执行,那这时我们就把这个纸打印出来就可以了,是不是我们就把这个纸打印出来,说取出的数据或叫出站的数据。
05:00
出站的数据。数据是多少呢,打出来。对不对,导出来我们格式化一下,还是这边呢,我们用一个斜杠N。出来的数据就是res,如果他一旦在这里抛出异常,是不是进入到catch块,那么我把异常信息打出来就可以了。叫e.get事情。可以了,好,最后呢,他如果是输入了一个退,当然不要忘了一件事情啊,这有个break是不是case,如果他输的。一个退出指令exit,那么我们怎么办呢?我们就直接这样做,首先先把这个scanner。关闭,因为它是一个流嘛,它是一个文件流,先把它关闭,避免造成资源的这个这个泄露,好,然后我们把这个路就是控制循环的这个变量。给他制成什么呢?制成一个force它就退出了,不要忘了还有一个break啊,最后这个default可以要也可以不要啊,那么就留在这吧,最后为了提示信息好看呢,我们在Y2循环后面这提示他一句话说程序退出了。
06:12
对吧,就退程序退出程序退出,好同学们,我们来测一下,看看我们这个站是不是能够。正常的工作,全屏下来运行着。好,同学们,我们来先show一下,Show,此时此刻应该是个空站,没有数据正确的,那现在呢,我们来push一些数据。好,它是一个十。Show一下。是不是现在只有一个数据,我们再push一个数据20。没问题,再秀一下是不是占顶20打出来了,我们再。Push一个数据30。再show一下是不是占顶是30站,大家知道现在站呢,应该就是呃,Top应该等于二好,Top等于二好,现在呢,我们再来push一个。
07:06
不是比如说40。受一下。好同学们,现在我再push还能push进去吗?我在push一个50,它应该提示。占满正确。好,现在我们pop一个数据,Pop同学们现在pop出来的第一个数据应该是40回一回车。没错啊,现在呢,我们再show一下,你会看到呢,占占比那个数据没有了,就是二二,但是我要给大家提醒大家一下啊,虽然你这一个显示的是012的数据,但是sta。那个十大格那个三的那个数据呢,你就访问不到了,但实际上它还在啊,只是你访问不到,因为我们在显示这个站的时候呢,直接是从这个站顶开始走的,也也就是说不管你十大克三有没有数据,其实你都看不到了,明白我的意思吧,因为你是从站顶开始直接变利到下标为零的这个位置。
08:05
好,我们再来泡泡。又出来一个,再泡泡,好,同学们,泡泡出来20,再泡泡,还能泡泡出来一个吗?十、同学们,我再泡泡。还能出来吗?没有了,占空。好,这个时候你再试一下,没有数据,那么这个时候你再往里面加数据,可不可以呢?可以的啊,再push,比如说我在push一个100。没问题,难受。是不是这样子的啊,所以说这个站呢,用起来是没有问题的,我再输一个退出,好程序退出可以了,好同学们,那根据刚才我们这段测试呢,说明代码没有任何问题。没有任何问题,现在老师给大家出一个题,刚才我们是用数组来模拟的,那么为了加深对战的理解呢?我要求同学们啊,把老师写的这个程序改成用链表来模拟战。大家觉得难不难?一点都不难,因为前面我们讲的这个站的,呃,链表的添加,还有链表的便利,其实都已经讲了,用单链表可以实现。
09:08
啊,可可以用单面,因为链表的反向输出,是不是也也给大家讲了没有问题吧,好,现在呢,我把这个代码给大家简单的整理一下啊,给大家简单的整理一下。那么我们来把代码呃整理一下吧,我们看看怎怎么来说啊,刚才我们讲的是站的一个快速入门,是不是站的了一个快速入门呢?来理解一下这个思路。那么站在快速入门呢,首先我们说的是呃,用数组来模拟战,而且呢,把这个思路也给大家分析了一把,是不是好,第一个先给大家说的是用数组来模拟上的一个基本的介绍,然后呢,我们说实现的一个思路分析并画出了示意图,图是不是在这思路在下面我把整个这个呢截过来。
10:02
是吧,那大家看一下我们的思路,其实挺简单,一个是入站的思路,一个是出战的思路。啊,那么在创建这个站的时候呢,这个top初始化为多少为一。我把它保存一下。当我们把思路分析完毕以后,是不是我们就把代码实现了,哦,代码实现。代码实现,这是我们代码实现是第三步。那具体来说,这个代码在哪里呢?就在我们写的这个地方,包括编写,还有它的测试都讲完了,我把代码给同学们板述一下。放到我们的笔记中,最后呢,老师给大家留了一个课后作业。啊,课后关于关于站的一个小练习,小练习我也写到这儿,要求大家干什么呢?使用链表来实现这个站对不对?课堂练习写到这。
11:05
使用链表来模拟这个战,写的是链表来模拟战。同学们呢,这个课后把这个作业把它练习一下,练习一下好了,同学们,那关于站的一个快速入门,咱们就给大家讲解讲解到这里,前面这个快速入门还是非常简单的,对不对?那后面的这个呢,就有一定难度了,比如说我们用站实现综合计算器,还有表达式的相互转换,都是建立在这个站的基础之上的,就是前面咱们写的这个站的基础之上的。明白这意思吧,好,那关于这一讲,就先给同学们说到这里。
我来说两句