当前位置:首页 > C++知识 > 正文内容

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

亿万年的星光5年前 (2021-02-19)C++知识2160

栈是只能在某一端插入和删除的特殊线性表。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈(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,指向栈顶)


四、应用

  • 函数中调用其他函数

  • 中断

  • 表达式求值

  • 内存分配

  • 缓冲处理

  • 迷宫



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

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

分享给朋友:

相关文章

【数论】二项式定理

【数论】二项式定理

一、基本概念上面这个式子就叫做二项式定理,又称牛顿二项式定理,该定理给出两个数之和的整数次幂诸如展开为类似项之和的恒等式。二项式定理可以推广到任意实数次幂,即广义二项式定理。 初中高中阶段比...

STL入门——容器2:set

一、简单介绍    set是STL中一个很有用的容器,用来存储同一种数据类型的数据结构(可以称之为K的模型),基本功能与数组相似。set与数组不同的是,在set...

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

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

STL入门——容器1:vector (不定长度数组)

一、定义     vector是一个不定长度数组。不仅如此,它把一些常用操作“封装”在了 vector 类型内部。    ...

【数据结构】队列—基本操作

【数据结构】队列—基本操作

一、C++实例分析       C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容...

【初级篇】求最大公约数的方法

1.辗转相除法int gcd(int a,int b)  {       if(a%b==0...