栈是一种数据呈线性排列的数据结构。不过这种数据结构中,我们只能访问最新添加的数据。
栈是限定仅在表尾进行插入或者删除操作的线性表,对于栈来说,表的方向有唯一性,表尾指的是栈顶(top).
表头是栈底(bottom)。
栈就像是一摞书,拿到新书时我们会把它放在书堆的最上面,取书也只能从最上面的新书开始取。
往栈里面添加一条新数据的操作叫入栈也叫做“push”
从栈里面取出数据时候,是从最上面的数据开始取的,从栈中取出数据的操作叫做出栈也叫做“pop”
像这种最后添加的数据先被取出,即“后进先出”的结构,我们称为Last In First Out,简称LIFO。
与链表和数组一样,栈的数据结构也是线性的,但是在栈中,添加和删除数据操作只能在一端进行,访问数据也指那个访问到顶端的数据。
想要访问中间的数据时候,就必须通过出栈操作将目标数据移到栈顶才行。
栈只能在一端操作这一点十分不便,但是只需要访问最新数据时候,使用它就比较方便了。
栈的实际应用:
1.数制转换
2.括号匹配
3.行编辑程序
4.迷宫求解
5.表达式求值
参看:数据结构(C语言版)清华大学出版社 - 栈和队列
网友评论