数据结构 第5讲 顺序栈
小张终于攒钱买了车,可是他家住在胡同的尽头,胡同很窄,只能通过一辆车,而且是死胡同,每天小张都为停车发愁,回家早了停在里面,早上上班就要让所有的人挪车,先让胡同口那辆出去,然后挨着一辆一辆出去,小张才能去上班。没办法,小张下班也不敢早回家了,等天黑了别的车都停进去了,再回去把车停在胡同口,这样早上就可以第一个去上班了。就这样,过起了"起早贪黑"的有车生活。
我们看到这个胡同很窄,只能通过一辆车,而且是死胡同,只能从胡同口进出,画图:
小汽车是线性排列,而且只能从一端进出,后进的汽车先出去,这就是"栈",栈也是一种线性表,只不过它是操作受限的线性表,只能在一端操作,后进先出(Last In First Out,LIFO)。
进出的一端称为栈顶(top),另一端称为栈底(base)。栈可以用顺序存储,也可以用链式存储。我们先看顺序存储方式:
从上图可以看出,需要两个指针,base指向栈底,top指向栈顶。
顺序栈的结构体定义: