OpenGL中很多次对矩阵的操作都是用栈来存储的,为了加深印象,又拿出了数据结构重新理解了一番。
1.回顾
栈是一种呈线性排列的数据结构,在这种结构中,我们只能访问最新添加的数据。打个比方就是像一摞书,有新书的时候会把书放在最上面,取书的时候也只能从最上面的书开始取。
2.操作
往栈里面添加数据叫做入栈,也就是push操作。
从栈中取数据的操作叫做出栈,也就是pop操作。
3.解说
像栈这种最后添加的数据,最先被取出,即“后进先出”,我们称为Last In First Out,简称LIFO。
栈的数据结构是线性排列,特点是栈的添加和删除数据只能在一端操作,访问数据也只能访问到顶端的数据。如果想要访问中间的数据,只能通过出栈操作将目标数据移动到栈顶才行。
4.应用
栈只能在一端操作数据,这个看起来有点儿不方便,但是在只需要访问最新数据时候,使用起来就比较方便了。
比如,规定(AB(C(DE)F)(G((H)IJ)K))这一串字符串括号的处理方式。
首先从左侧开始读取字符串,读到左括号就将其入栈,读到右括号就将栈顶的左括号出栈。通过这样的处理方式,我们就能知道配对括号的具体位置。
网友评论