本文主要是介绍浅谈线性表——栈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、什么是栈?
- 二、栈顺序、链式存储时的时间复杂度
- 三、自我实现一个栈
- 3.1、实现代码
- 3.2、熟练使用栈
- 四、栈的应用场景
- 4.1、不可能的出栈顺序
- 4.2、表达式
- 4.2、OJ题
一、什么是栈?
栈是一种特殊的线性表,他只允许在固定的一端进行插入和删除元素操作。栈的底层是一个数组。
进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守先进后出原则。
压栈:栈的插入操作叫做 进栈/压栈/入栈,在栈顶入数据。
出栈:栈的删除操作叫做出栈。在栈顶出数据。
二、栈顺序、链式存储时的时间复杂度
栈是一个线性表,可以以顺序存储,也可以以链式存储,他们的时间复杂度分别如下:
三、自我实现一个栈
3.1、实现代码
自我实现一个栈
3.2、熟练使用栈
使用标准库提供集合类——栈里的方法操作栈:
代码示例
四、栈的应用场景
4.1、不可能的出栈顺序
一般这种题型,都会提示:入栈的过程中可以出栈。
4.2、表达式
中缀表达式转后缀表达式[选择题形式],通过后缀表达式(逆波兰表达式)计算出表达式的结果[代码题形式]。
4.2、OJ题
牛客或力扣上有许多栈相关的OJ题。
这篇关于浅谈线性表——栈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!