下面们来说一下堆栈压入和弹出操作首先我们来看一下堆栈的定义,这是我们现实生活中应用的是堆栈什么场景呢?我们这些碟子落在一起,大家想象一下,如果我们想取,盘子是不是从上面开始取呢?如图
入栈和出栈
如果你想取下边的盘子,你一定要先把上边的盘子移走,对不对?那么大家再想一下是不是上边的盘子可以兑现取走,而剩下的盘子是最先放的还是最后放的,对答案肯定是不言而喻的,这个盘子一定是最先放的,那么啊,最后放的才能最先取走,这就是我们说的堆栈,它的特征是后进就是后面来的法。
那么最后状的才能兑现取走,这就是我们说的对战,它的特征是后进就是后面来的反而先出,对于这样的是一种特殊的信息表,因为它满足线性表之间的,元素与元素之间的逻辑关系一一对应
这是我们对战的一个图示
入栈和出栈,我们大家看一下,我们的这一个对战呢,是想存放在地址连续的这个顺序表中,它的栈顶是a点,这里对这样的定义呢,它简称栈有的时候,我们讲栈顶的时候你就知道我们讲的是堆栈,他特殊,刚才除了这个所说的这个后劲啊,last in first out后进先出之外,它是一种特殊的线性表,必须是只能有一端进行插入和删除的操作,也就是说仅仅只有一端叫做栈顶的这一段能够允许插入和删除,因为你下面被压的死死的,就像我们的刚才的,别一样你是无法操作的,对不对?这是我们所讲的对象的定义和特点
入栈和出栈
入栈和出栈
就是对这样的基本运算,我们主要嗯来讲解,对于这样的压入和弹出,所以这样呢,也有两种存储结构,分别是顺序栈和链栈数据站采用的是数据结构,存储链站采用的是链式结构存储,那么我们的这一个,我们就是以顺序站为例来讲解我们的堆栈的压入和弹出好,我们来看一下我们的这个图,
入栈和出栈
有助于大家理解
这是一个有着4个元素的对价,假设我们这里呢有4个元素可以存放,然后这里是一个入站的序列,注意abcd入栈,大家首先看到我们的top指向哪里呀,指向这个元素,实际元素的前一个啊,这里要注意一定是前一个,好,我们现在首先来一个压入啊,push是压入,我们下面压a先进来先进来啊,注意了大家top先往上移动一格a才进来的,可是弹出的时候这个元素的顺序又是怎样的呢?仔细看,b先出去啊,a被压在底下没办法动的b先出去,所以就规定了只有栈顶才能操作,这是我们要注意的这一点,而且大家再注意看一下他的top的变化注意啊,是怎么样呢?是先出去top在变化而且我们一般一旦压入的时候,来看看弹出的如图
入栈和出栈
一般弹出之后我们还是需要给他备份一下再加入,嗯,大家看一下一样的,嗯,先动拖把盘出呢,好,我们先把它都压入吧,弹出肯定是弹出哪个元素先啊,先弹出f没错啊,我们看一下托管f先出去托管再来,减减或者再减减好的,我们来看一下源代码
入栈和出栈
,所以我们在这里呢就强调我们这里有一个,对于这样的一个空的条件就是什么呢,我们的Top要=-1,对于这样满的条件呢,就是我们等于最大的空间,领导麦克赛斯解谜就是对于这样的牛奶的条件,那我们在写这个代码的时候也要也要加入到这里啊,进行一个这个,见状性的做一些判断,如果他伪满啊已经满了,你肯定是不能再压入元素了,这是我们的压入代码,先是压入的时候先是占比指针加加,然后再把元素我们的这个对象压入给我们的呢,就是要判断对战是不是已经空了,如果已经空了,那也没有办法弹出元素来对吧,这是堆栈不为空的情况,我们先把暂停指针备份起来,然后top减减那么这个弹出的就可以得到我们的这个备份的元素,这就是今天要给大家讲的,堆栈的压入和弹出,谢谢大家

相关文章:

  • 2022-01-20
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
  • 2021-08-27
  • 2022-12-23
  • 2021-07-23
  • 2022-12-23
猜你喜欢
  • 2021-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-12
  • 2018-12-01
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案