一、栈的定义
栈是一种数据结构,它是一种只能在一端进行插入和删除操作的特殊线性表。这一端被称为栈顶,另一端被称为栈底。栈按照后进先出(LIFO)的原则进行操作(类似与手枪装弹后射出子弹的顺序)。在计算机科学中,栈被广泛应用于函数调用、表达式求值、内存管理等方面。
二、栈的结构
栈(stack)是限定仅在表尾进行插入和删除操作的线性表。
我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。
栈的插入操作,叫作进栈,也称压栈、入栈(PUSH)。
栈的删除操作,叫作出栈,也有的叫作弹栈。(POP)。
三、栈的基本操作(顺序表)
顺序存储结构思路较为单一,相较于链式存储结构操作较为简单,不过在存在两个缺陷:
一是出栈和进栈(越靠近栈底,要移动的元素越多)操作更复杂。
二是栈的容量是固定的,不能超过栈顶。