数据结构顺序结构之栈
作者:互联网
栈:栈是限定仅在一端进行插入或删除操作的线性表,该端称为栈顶,另一端称为栈底。
不含元素的表称为空栈。
栈的修改是按照后进先出的原则进行的,因此,栈又称为后进先出(last in first out)的线性表,简称LIFO结构
入栈:插入元素的操作为入栈
出栈:删除栈顶元素的操作为出栈
栈的表示:和线性表类似,栈也有两种存储表示方法:栈的顺序存储结构和链式存储结构
顺序栈:即栈的顺序存储结构,是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。
链栈:栈的链式表示(大家觉得链栈的头指针是指向栈顶还是指向栈底)
答案是:链栈的头指针指向栈顶。
为什么不是指向第一个元素栈底呢?
可以想想链式结构的特点,当访问某个结点时,需要从头指针开始逐个向后访问,而栈的特点是只在栈顶执行操作
所以,头指针指向栈顶元素就可以避免每次对栈进行操作时从栈底遍历到栈顶了,大大的减少的时间开销。
应用
数制转换
括号匹配的检验
行编辑程序
迷宫求解
表达式求值
练习题
P1449 后缀表达式
P7073[CSP-J2020] 表达式
标签:之栈,线性表,指向,元素,栈顶,栈底,顺序,数据结构,指针 来源: https://www.cnblogs.com/smghj/p/15950902.html