?在开始学习数据结构的代码之前,先了解栈的工作原理,也就是所谓的后进先出(一个抽象点比喻,跟纵向堆积木一样,从最底层开始,一层一层放得更高(先进),取的时候从上往下依次拿下来,这样才不会倒(先出)。),栈包括两个方面,一方面来存储数据,一方面拿一个箭头(top)指向下一个放入的地方(入栈,出栈,展示)。
top可以指向最高存在数据的位置,也可以指向最高点数据上面下一个插入的位置,看个人习惯(后面都是依照第二种top所写)。
栈的结构体有包含数据域和指向顶点的位置两方面。
代码如下:
输入入栈的元素个数,在调节top位置即可。
代码如下:
先判断栈是否未满,未满才能进行入栈的操作。
代码如下:
如同数组一半,找到top指向的值(相当于数组的长度),打印出来即可。
代码如下:
判断栈是否未空,空的话则没有元素可以出去,不为空则将最顶上的出栈并且指针向下移动一位便可(先--是因为指向的是下一个将要插入的位置,所以为空,先--才能指向存放数据的最高位置),*e是用来记录出栈的数据。
代码如下:
?以上便是初始化,入栈,出栈,展示的基本操作,比起其他理解起来会轻松许多,但是要学会灵活运用才会有更深的见解(看书再多都不如自己亲手敲一遍效果好……)。
小白自己的见解,希望大佬多多指点……