前言:栈是一个“先进后出”的一个数据结构
目录
一、基本概念:
1.定义:
·栈(stack)是一个特殊的线性表,是限定仅在一端(通常是表尾),进行插入和删除操作的线性表。
·又称为后进先出(Last In First Out)的线性表,简称LIFO结构。
·栈的逻辑结构与线性表相同,仍为一对一的关系。
2.基本操作:
对栈的基本操作有Push(进栈)和Pop(出栈),前者相当于插入元素,后者则是删除最后插入的元素。
3.栈的表示与实现
由于栈本身就是线性表,于是栈也有顺序存储和链式存储两种实现方式。
·栈的顺序存储--顺序栈(数组)
·栈的链式存储--链表
有关顺序栈的详情可点击上方链接
而链栈的出栈几乎等同于链表的插入,链栈出栈几乎等同于链表的删除(所以这里就不在赘述了,如有问题可在评论区留言)
4.栈的应用
括号匹配实验
表达式求值
注:以后会补这两个应用的博客。到时候会附上相应链接,请尽情期待!
二、易错及重要的知识点:
- 栈为一种特殊的线性表。
- 顺序栈中,判断是否为空栈 <=> S->top==-1。
- 顺序栈中,判断是否栈满 <=> S->top==S->MAXSIZE-1。
- 顺序栈中,栈的长度 <=> S->top+1。
- 顺序栈的入栈以及出栈的时间复杂度都为O(1)。
大家记得点赞评论加收藏哦!!!
希望大家能多关注一下我哦!!!
我会不定期的更新关于数据结构的内容,或者大家有什么想让博主更新的知识点也可以在评论区留言哦。