📭今天我们讲数据结构里面的栈,有了顺序表的基础后学习栈那真是唰唰唰的瞬间理解这些东西,非常的easy~~
1:栈的基本概念和结构
栈的概念📝
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
压栈:栈的插入操作叫做进栈/压栈/入栈,(入数据在栈顶)
出栈:栈的删除操作叫做出栈。(出数据也在栈顶)
栈的结构📝
🤔函数的调用需要开辟栈,这两个栈是一回事吗?
函数调用开辟的栈是从内存中申请一块空间,属于虚拟进程地址空间,当程序运行起来执行函数时,函数栈帧用来存放局部变量、参数、返回值等等。和数据结构中的栈没有关联。这两个一个是数据结构中的栈,是一个数据结构。另一个是操作系统中内存划分的一个区域,叫做栈,用来函数调用时建立栈帧。
下面我们进入第二阶段
2:栈的实现
🖊:栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入删除数据的代价比较小。