栈是线性表的一种特例,都说了与线性表有关了,那么它肯定也能实现某种顺序结构。
接下来,就通俗易懂解释一下栈吧。
栈的特点:先进后出
那么肯定就有萌新会问,栈的特点我知道啊,这么简单的东西,不就四个字吗?“先进后出”!
好家伙,一上手,我cao,咋个实现的呀?咳咳,在这里,在实现代码之前,我还是上个图简要的解释一下流程吧。
未来的大牛们,请睁大你的眼睛(虽然很简单)....(来自弱者的羡慕)
我们把栈比作为一口井,想想,你往井里面放东西,是不是先放的东西在最底下,最后放的东西在最上面,那么要取出你放的东西时,那么肯定就是,最后放的东西先拿出,先放的东西最后拿出了呀。最开始,我们用一个指针(Top)【代表栈顶的意思】,最开始我们什么东西都没有放,所以我们就用Top指向栈底(这里的栈底也就是栈顶的意思,因为栈里面没有元素嘛)。
等等,关键的来了,如果我要往栈里面放元素怎么办?这个Top咋办?其实很简单,我们只需要让Top++就行,(不会忘了++是什么意思了吧?不会吧不会吧?)进行这样的操作后,Top就指向了新放进这个元素的位置了。(入栈)
那么我想要出栈怎么办?这里也很简单,其实就是入栈的逆过程,说关键的:Top--就行(出栈)
看了那么多文字,很累了吧?(虽然我废话比较多,但毕竟是我第一次发blog嘛,而且还闲的dan疼,嘿嘿嘿)
上代码!!!
1.定义一个栈的结构体
2.对栈进行初始化
3.将栈置空(其实跟栈的初始化一样)
4.入栈
5.出栈
6.访问栈中的元素且打印
7.遍历栈中的每一个元素
8.求栈中有几个元素
9.想知道栈顶元素的值
所以,还是挺简单的,对吧?嘻嘻嘻
(来都来了,点个赞再走呗^-^)