C语言对于栈和队列的一些理解

最简单的理解最极致的享受

1.先看栈,我是这样理解的,把他看成是一个瓶子(只是在脑子想象的瓶子)而且数据进出都只有唯一的一个口子,如下图在这里插入图片描述看的出来,从口子进去那么a第一个进去但是被压在最后一个位置,所以你要把他拿出来的时候只能最后一个拿出来因此就可以明白栈的操作了。

在这里插入图片描述这时候我们发现有一个top,你可以理解为一个标示符号,当你设置栈位空的时候他是为-1的 (因为数组的第一个下标为0),因为我把栈看成了一个数组了,第一个元素a[0]是a,所以当top在-1时,就可以理解为栈是空栈了(注意:我所说的空,并不意味这top = -1时栈中没有了数据,而是此时你可以默认为栈中为空,这样你就可以控制top的指向位置来给栈中的数据赋值来取代原先的数据了,因为栈是用来放入数据的东西,而top只是为了方便我们定位的工具)

2.了解清楚之后就可以对栈进行操作了

入栈(要先判断栈是否为满,栈满的条件是top指向数组的最后一个下标元素)
出栈(判断栈是否为空,top = -1)
取栈顶(找到top这个位置)
初始化栈(栈中元素全部清0)

具体代码:自行查找,重在理解!!!

队列

对于队列我本来想自己写的但是我找到了一篇更好的理解博客因此直接转载了

添加链接描述

发布了14 篇原创文章 · 获赞 0 · 访问量 355

猜你喜欢

转载自blog.csdn.net/LIGUOZHENLX/article/details/104611152