从0开始学习数据结构-堆栈的概念及操作

234 阅读2分钟

这是我参与2022首次更文挑战的第18天,活动详情查看:2022首次更文挑战

堆栈和队列都属于线性结构,是两种特殊的线性表,其特殊性就在于堆栈和队列的有关操作只是一般线性表有关操作的一个子集,并且操作的位置受到限制。又称堆栈和队列是两种在操作上受到限制的线性表。有的书上也称限定性数据结构。

  • 堆栈和队列的基本概念
  • 堆栈和队列的存储结构
  • 堆栈和队列的基本操作
  • 堆栈和队列在计算机中的具体实现

堆栈的定义

堆栈(stack)简称为栈。它是一种只允许在表的一端进行插入和删除操作的线性表。

  • 允许操作的一端称为栈顶,栈顶元素的位置由一个称为栈顶指针的变量(top)
  • 另一端称为栈底

空栈: 表中没有元素

堆栈的插入操作:称为入栈或者进栈 删除操作:称为出栈或者退栈

堆栈的基本操作

  • ①初始化一个堆栈
  • ②判断堆栈释放为空栈
    • 当堆栈为空时,返回一个真值,否则,返回一个假值。对堆栈进行删除或者取栈顶元素之前必须需要考虑
  • ③判断堆栈是否已满。
    • 当堆栈已满时,返回真值,否则,返回一个假值。在堆栈采用顺序存储结构时,对堆栈做插入之前需要考虑
  • ④进栈或者入栈:在堆栈的顶端位置插入一个新的数据元素。在线性表的最后那个元素后面插入一个新的数据元素,——该操作会改变栈顶指针的位置。
  • ⑤出栈或者退栈:删除堆栈的栈顶元素。 在实际应用中:
    • 被删除的元素可能有某种用途,因此,可以将该操作定义一个函数,函数返回栈顶元素,并从堆栈中删除它.
    • 有的是进行删除之前先保存被删除的元素。
    • 该操作也会改变栈顶指针的位置
  • ⑥获取栈顶元素。不会改变栈顶指针的位置