一、栈的应用

栈是一种先进后出(FILO)的数据结构

  1. 清空(clear):

    /*栈的清空操作就是把栈顶top置为-1*/
    void clear(){top=-1;
    }
    /*清空栈,由于没有直接用于清空栈的元素,所以使用while和pop组合*/
    while(!st.size()) st.pop();
  2. 获取栈内元素个数(size):

    /*由于栈顶指针top始终指向栈顶元素,而下标是从0开始的,所以栈内元素要把top+1*/int size(){return top+1;
    }
  3. 判空(empty):

    /*由栈顶指针top判断的定义可知,仅当top==-1是为空,返回true,否则返回false*/
    bool empty(){if(top==-1) return true; //栈空else return false;  //栈非空
    }
  4. 进栈(push):

    /*push(x)操作将元素x置于栈顶,由于top始终指向栈顶元素,所以需要把top+1然后再把x存入top位置*/
    void push(int x){st[++top]=x;
    }
  5. 出栈(pop):

    /*pop()操作将栈顶元素出栈,而事实上可以将栈顶指针-1来实现这个效果*/
    void pop(){top--;
    }
  6. 取栈顶元素(top):

    /*由于栈顶指针top始终指向栈顶元素,所以st[top]就是栈顶元素*/
    int top(){return st[top];
    }

stack的常见用法

栈,后进先出(FILO)

  1. stack的定义:

    /*定义一个stack需要添加头文件#include <stack>以及在头文件下方加上using namespace std;stack<int> st;
    */stack<int> st;
  2. stack容器内的元素访问:
    /*只能通过top()函数来访问栈顶元素*/st.top();
  3. push()函数:
    /*push(x)将x入栈*/st.push(1);
  4. top()函数:
    /*top()函数获得栈顶元素*/st.top();
  5. pop()函数:
    /*使用pop()函数弹出栈顶元素*/st.pop();
  6. empty()函数:
    /*empty()可以检测stack内是否为空,true为空,false为非空*/if(st.enpty()==true)
  7. size()函数:
    /*通过size()函数来获得栈的元素个数*/st.size();

【栈】栈的基本操作实现模板的总结相关推荐

  1. 数据结构之【栈】的基本操作C语言实现

    引题:        很多人都把[栈]描述成[弹匣],但我总感觉有点不恰当,因为弹匣从上端[装弹]之后,子弹总是在匣的上层:而元素[进栈]之后,总在栈的下面.        我觉得还是描述成[从下往上 ...

  2. 栈——栈的基本概念和基本操作

    文章目录 栈 栈的基本概念 栈的定义 栈的重要术语 栈的特点 栈的基本操作 创.销 增.删 查 判空 栈的数学性质 栈 本文我们初次学习栈,分为栈的基本概念和基本操作两个部分. 学习数据结构,我们的学 ...

  3. 栈与队列基本操作及其应用

    文章目录 一.栈 栈的实现 顺序栈 栈的应用 1.数制转换(十进制转换为R进制) 2.括号匹配的检验 二.队列 队列的实现 1.队列的链式表示和实现 2.循环队列-队列的顺序表示和实现 队列的应用 1 ...

  4. 队列实现栈 | 栈实现队列

    队列实现栈 | 栈实现队列 ⼀. ⽤栈实现队列 首先,队列的 API 如下: class MyQueue {/** 添加元素到队尾 */public void push(int x);/** 删除队头 ...

  5. 顺序栈栈顶指针指向详析

    顺序栈栈顶指针指向详析 1.变长型(动态分配内存空间) #define STACK_INIT_SIZE 100 //存储空间初始分配量 #define STACKINCREMENT 10 // 存储空 ...

  6. 判断顺序栈栈满的两种方式

    判断顺序栈栈满的两种方式

  7. Java #JVM(HotSpot) 运行时数据区 #程序计数器(PC寄存器)#虚拟机栈(栈帧:局部变量表、操作数栈……)#堆……

    目录 JVM中线程的说明 程序计数器(PC寄存器) 虚拟机栈 · 栈帧 ·· 局部变量表 ·· 操作数栈 ·· 动态链接 ·· 方法返回地址 ·· 本地方法栈 堆 · 查看堆的大小 · 堆的默认大小 ...

  8. 【单调栈】【概念讲解模板代码】

    文章目录 什么是单调栈 模拟实例: 一.[模板]单调栈 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 题目解析: 二.发射站 题目描述 输入格式 输出格式 样例 #1 ...

  9. 栈(顺序存储)C++模板实现

    #include <iostream> using namespace std;template <typename T> class stack{private:int to ...

最新文章

  1. ping的实现和代码分析
  2. 2019年,被高估的AI与数据科学该如何发展?
  3. C++设计模式--单例模式(Singleton)及单例通用模板
  4. 二叉树的遍历 (递归和非递归实现)
  5. xstream解析xml字符串和生成对象
  6. flink背压问题处理(还没弄完)
  7. 33迭代器模式(Iterator Pattern)
  8. Jquery 学习心得和资料
  9. PCA MATLAB
  10. 2022数学建模“五一杯”B题 题解+论文
  11. 1.4 自定义框架
  12. 关于软考,人事考试照片格式要求如何修改,且通过照片审核处理系统。要求295px*413px像素
  13. SQL分组排序再取前N条记录
  14. idea出现Cannot find keymap “Windows copy的报错?
  15. 大数据IMF传奇行动绝密课程第91课:SparkStreaming基于Kafka Direct案例实战和内幕源码解密
  16. css动画--吃豆豆
  17. sigmoid和softmax区别
  18. OPN/SPN/PLMN的区别
  19. 源代码 一对一交友源码,一对一聊天系统接口处置方案
  20. 有序的HashMap:LinkedHashMap

热门文章

  1. JavaScript window.location物
  2. HIT训练营----1 题解
  3. 区块链BaaS云服务(36)欧盟EBSI“使用场景”
  4. 区块链BaaS云服务(21)腾讯CCGP”安全沙箱“
  5. 《研磨设计模式》chap15 组合模式(2)改写示例+总结
  6. MIMIC 以太坊医疗项目开发(2) 前端H5介绍
  7. C++(四)——类和对象(下)
  8. 450. 删除二叉搜索树中的节点
  9. 深浅拷贝垃圾回收机制四大高阶函数
  10. html数字变换插件,轻量级jquery数字动画插件