00:00
我们可以在这个位置呢,写一个测试程序,我们测一下。Class a14。哎呀。不应该在这儿测啊。幺三这个先关了,幺四这个删掉。嗯。嗯,在这。加一个class啊,叫my test。PSVM。首先你在这儿是不是有一个无参构造?所以我在这一块。这属于扩展题啊,听不懂,呃,这个写没写出来无所谓啊,My stack my stack,这个是不是创建一个战队象。初始化容量是十个元素。
01:04
因为你在这里调的构造方法是不是这个这个构造方法是不是,你有一个数组的时候,是不是传了个十进去,这样的话,这个数组是不是可以存十个元素啊。是吧?对不对。好,那么接下来我们是不是就可以往里面压东西了?要方法呀。对不对,哎,调用方法压站。Stack点什么呀,Push啊。这个方法不是我们写的吗?你回头看看这个push方法是不是里边需要传个。压呗,Push往里边压点push是吧,回车这边呢,我们可以用一个object进去。对吧,哎,你看第一个。你new了一个object进去,也就是你放了个对象进去之后,接下来这个OBJ是不是会自动在那调to string方法,因为你stem.out.print LA这个方法输出obj obj是个引用,我说过N多遍,N多遍,我不知道你记没记住,到底记没记,输出一个引用的时候会自动掉它的to顺方法,我在这里你别嫌我烦,我再声明一遍啊,再声明一遍,再声明一次,所有system.out.printline。
02:31
方法执行时啊,如果输出引用的话,自动调用引用的方法。啊来,那么这块它会你一个object,所以呢,它会调出一下object里边to方法吧,所以我们来运行一下。压榨。
03:02
压站是不是这个对象啊,这是个对象内存地址吧,是不是元素成功战争指向零了,因为它最初的时候是不是指向谁呀。最初的时候指向谁呀,各位?最初的时候指向负一啊。对不对,你压进去一个,它就指向零了,你再压进去一个。几个是一二三四五六七八九十十一,第十个和第11个。对吧,找一个。嗯。嗯,压榨这个元素成功战争指向0123456789,妥了。零到九是不是十个元素存满了,再往里边压,最后11个的话,压战失败,占已满,是不是压这个元素的时候失败了。对吧,对吧,压这个元素失败了,因为你好好数一数,这是不是十十个对象。
04:02
对吧,这十个对象啊。对不对,哎,调用这个push方法往里面压。你每一次。这个index一定要加一啊。加一之后,Elements把index放进去。这样的话,把obj是不是正好放到这个数组,这是下标啊,各位这是不是下标啊,把这个对象是不是正好放到这个下标上。这个数组就是elements嘛,这个数组的某一个下标上,所以你这个下标其实就是index,但是index必须得加加,如果这一步不变会有什么问题,这一步没有的话,就表示index是个固定的值。对吧,Index是是个固定的值啊,所以这块呢,大家注意你每加一次,诶index干什么呀,加一加一之后放到这。啊,那反过来各位。Public。啊,VO pop,这是战的方法。
05:03
咱把这个说完各位啊,弹往外pop往外弹,那我问大家问题,弹完之后返回不返回弹出的东西。按按说是不是应该你调用将来这个战stack它的方法谈战嘛,是不是谈战呀。是不是,哎,谈战啊。团战的话,你应该掉这个他的pop吧。是不是,哎,那你调泡泡泡往外弹,我问你是不是应该返回你弹出的元素啊。是不是得返回你弹出的这个元素啊,啊,所以你这个方法是不是应该设定一个返回值啊。是不是啊,好。这边呢,我们写上一个注释,叫做什么呀,叫做谈战的方法。啊痰战,痰战的话就是从数组里边往外取元素啊,从数组中往外干什么呀,取元素。
06:19
每取出一个元素。战争向下移动一位吧。什么意思,你现在。你有一个站对吧,你往里边加了一个元素。对不对,哎,现在这是零,你又加了一个元素。对吧,现在这是一你又加了个元素啊。现在是不是二啊,好,你又加了一个元素。现在变成三了,你又加了一个元素。是不是现在变成四了呀,好,那往外弹,各位往外弹的话是不是这个。
07:06
战针往下移动。对吧,哎,战争如果指向的这个位置是零,它仍然可以往外弹。你每弹一次是不是要减一?什么时候这个占空了各位。什么时候这个站空了?就里边没东西了。什么时候?如果。战争。等于负一。等于零,还有东西啊,指向这个位置的。小于零对。所以小于零可能会更好一点。那你这块的话,你得判断一下if index,如果小于零,对不起。
08:03
输出一句话。战已空。谈战失败啊,战已空,Return结束,Return一个那。啊,Return一个none也行,各位你光你你你其实你要不写这个其实也可以对吧,你加一个什么呀,Else也可以。对吧,也可以。当然我们在这就这样写吧,如果占一空的话,给它返回一个,那你光写return不行啊,因为写return报错,为啥?因为这个方法是不是要求你有返回值。对不对,哎,有返回值。那有返回值的话,你就返回一个,那就完事了。
09:02
空的不想返回怎么办?那不行啊。你不返回报错呀。那除非说你你不愿意,你不愿意让他返回值,你返回VO对吧,你写VO也可以。这样就不用返回值了。啊,Return结束对不对啊可以。没问题啊,那行,咱们先不写返回值了,不写返回值了,哎呀,不写了行不行,哎,不写返回值了啊,也行,没问题啊。你的目的将来有可能弹出来之后,你拿到这个元素要在外边用,懂什么意思吧,你不写返回值,那无所谓啊,无所谓啊,这个东西不是说必须的呀,Sta pop掉pop方法,弹战是不是index小于零。小于零是不是哎就占空了,那么程序到这儿,这说明啥?程序能够执行到此处说明什么呀?占没有空。
10:06
站没有空怎么办呀?啊,输出吧。痰战哪个元素?哪个元素各位。你把哪个元素弹出去了。谈的是这个数组里边下标,为什么?是不是现在你pop的时候往外弹的时候,这个index如果小于零,是不是就等于空了。
11:00
那程序能到这儿的话,代表不空呗,不空的话就弹出这个元素。弹出这个元素,你得注意啊。来index是不是得减减。对吧。是不是啊?Index减减先弹出。Index减,再往后继续输出。然后下边战争指向。你这是完整的一句话啊。
12:01
战争指向index。LN啊,换个行。弹战这个元素成功吗?Index减减,现在战争指向这个位置,你减一了吗?对吧,战针向下移动移位,战针现在指向这个位置。弹战弹出这个元素吗?成功啊,我们来看一下。来,先压进去的,不是最后压进去的,应该最先弹吧。这是不是最后压进去的,最后压入的应该最先弹出来吧,这个是不是才符合站的数据结构数据结构啊。最后压进去的是不是最先弹出来。
13:10
压入元素战争指向零,最后压的内存地址是4769B076。然后最后弹出,先弹出来是不是也是4769B076元素成功战争指向八。原先是九嘛,现在指向八是不是,那这个时候我们来看看弹一个两个三个四个五个六个七个八个九个十个好。你压进去十个弹的时候,是不是也是按照逆序的方式弹的,我们看看啊。好,大家看第一个压进去是1333,什么4B。最后弹出的这个是不是133314什么4B是吧?哎,战争指向负一了。你这个时候。如果再继续往下谈。
14:03
是不是就应该是提示占空了。就是谈战成功,战争指向负一已经没有元素了吗?对不对,你再往下谈,你看看他,就他最后说出一句话。说谈战失败战已空。压战失败战已满。对吧,0123456789。876543210,然后负一。负一的时候再往下,再往下弹就失败了。啊,失败了。行,那么这个的话,其实就这个程序啊,大家尽可能去听吧,那有可能现在有些同学还是比较迷糊啊,说这个东西嗯,我怎么就想不到呢,因为你不是老程序员啊。啊,正常啊,先休息一下。
我来说两句