浅谈栈

所谓栈,就是一种先进后出的数据结构。

何为先进后出?想象一个箱子,你往箱底塞了一本语文书,然后往语文书上放数学书。假设箱子底面积与书的面积相同,那么你想把先放进去的语文书拿出来,就必须得先把放在上面的数学书拿出来。所以“先进”的语文书与数学书比较是“后出”的。
在代码中一个栈由一个数组\(stk\)和一个变量\(top\)组成,数组存信息,\([1,top]\)的空间都被占用了,下一次放元素就只能放在\(top+1\)这个位置然后让\(top=top+1\)。拿元素也只能从栈顶,也就是\(top\)拿出来,然后\(top=top-1\)

虽然栈的构成和代码都十分的简单,但是由于题目需求的毒瘤多样性,可以变着法子玩,比如要栈里所有元素保持单调的单调栈,两个口子相对的对顶栈等等……

posted @ 2019-01-16 17:28  AKMer  阅读(208)  评论(0编辑  收藏  举报