当前位置:首页 > C++目录 > 正文内容

【数据结构】栈(Stack)的介绍

亿万年的星光5年前 (2021-02-19)C++目录2452

栈是只能在某一端插入和删除的特殊线性表。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表(LIFO表)。


一、栈的定义



二、分类

  • 静态栈:使用数组

  • 动态栈:链表

  • 标准库STL中的stack


三、算法

  • 入栈:push

  • 出栈:pop

  • 判断栈空:empty

  • 栈大小:size

  • 访问栈顶:top


  1. 进栈(PUSH)算法

    ①若top >= n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则进行②)

    ②top++ (栈指针加1,指向进栈地址)

    ③s[top]=x,结束(x为新进栈的元素)

  2. 退栈(POP)算法

    ①若top<=0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈,空则下溢;不空则进行②)

    ②x=s[top],(退栈后的元素赋给x)

    ③top--,结束(栈指针减1,指向栈顶)


四、应用

  • 函数中调用其他函数

  • 中断

  • 表达式求值

  • 内存分配

  • 缓冲处理

  • 迷宫



    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    【数论】同余定理与同余方程

    定义同余定理是数论中的一个重要概念。它的定义是这样的:给定一个整数m,如果两个整数a和b满足(a-b)能够被m整除,即(a-b)/m 得到一个整数,那么就成整数a和b对模m同余,记作a≡b(mod m...

    哈希表与哈希函数

    1. 哈希表(Hash Table)1.1 基本概念哈希表是一种通过哈希函数将键(key)映射到表中特定位置来访问记录的数据结构。它提供了平均时间复杂度为O(1)的查找、插入和删除操作。1.2 核心组...

    求阶乘的方法

    1.普通求法#include<iostream> using namespace std; int main(){ int sum=1;...

    【数论】龟速乘

    【数论】龟速乘

    我们前面一篇文章学习了快速幂。它可以解决两类问题:a^b,(a^b)%c对于第一类,我们可以使用递归法或者迭代法可以求出,为了计算的快,我们可以引入位运算操作,但是目前来看,无论怎么优化都不能超过lo...

    完全背包问题

    1. 问题定义完全背包问题是经典的动态规划问题之一。它的基本描述如下:有一个容量为 V 的背包。有 N 种物品,每种物品有无限个可用。第 i ...

    树的存储与遍历—顺序存储

    顺序存储使用数组来存储二叉树节点,通过数组下标表示节点间的父子关系,一般适用于完全二叉树。1.存储规则根节点存储在索引 0 位置对于索引为 i 的节点:左子节点索引:2*i + 1右子节点索引:2*i...