首页 > 其他分享 >栈——stack的用法

栈——stack的用法

时间:2023-02-19 11:11:33浏览次数:44  
标签:删除 元素 栈顶 栈底 插入 用法 stack

介绍

  栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

  栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针

  栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶,另一端为栈底;栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈,删除则称为退栈。栈也称为先进后出表。

  如图:

      

 用法

  stack与vector类似,也是C++中一种常用的容器

  首先,使用它需要一种特殊的头文件

1 #include<stack> //当然也可以使用<bits/stdc++.h>万能头文件

  以下是它的具体用法

1 stack<int> s; //建立一个栈s,元素类型为int
2 s.push(a); //将元素a压入栈s
3 s.pop(); //将栈s的栈顶元素弹出
4 s.top(); //查询s的栈顶元素
5 s.size(); //查询s的元素个数
6 s.empty(); //查询s是否为空

  如果还是不明白某一函数的具体作用,可以看这张图:

      

                                                                        码字不易,点个赞呗§(* ̄▽ ̄*)§

标签:删除,元素,栈顶,栈底,插入,用法,stack
From: https://www.cnblogs.com/jsyczzws/p/17134380.html

相关文章

  • jquery的用法
    $('#element');//相当于document.getElementById("element")$('.element');//Class$('p');//html标签$("form>input");//子对象$("div,span,p.myClass");//同时选择多种......
  • react中Hooks的理解和用法
    一、Hooks是什么?Hook 是React16.8的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性至于为什么引入hook,官方给出的动机是解决......
  • 线段树以及其高级用法
    1.线段树2.动态开点及标记永久化3.线段树的分裂和合并4.李超线段树5.zkw线段树6.树套树7.线段树分治8.猫树......
  • Git的版本和分支管理(高级用法 写的较好)(转载)
    本地的分支管理创建分支,你可以使用​​gitbranchdev​​这就创建了一个dev(development之意),更好的,选择使用下面的方法创建两个分支——dev,创建后会自动切换到新创建的分......
  • vue中执行异步函数async和await的用法
    在开发中,可能会遇到两个或多个函数异步执行的情况,对于Vue中函数的异步函数执行做了一个小总结,如下:异步执行使用async和await完成created(){this.init()},methods:{......
  • python 的 match case 用法详解
    Python3.10实现的match功能是其他开发语言中传统的switch的超集,它不仅仅是switch,可以实现更为复杂的功能。模式匹配大大增加了控制流的清晰度和表达能力。背景......
  • python中lambdas匿名函数的用法
    匿名函数相信大家都听说过,本篇将会从表达式的使用入手,帮助大家快速掌握lambdas匿名函数的用法。1、lambdasx是指lambdas关键字和使用的变量,冒号后为函数的表达式。2、逗号......
  • 【嵌入式】嵌入式C语言用法积累(长期更新)
    1、C语言排序#include<stdio.h>#include<stdlib.h>intcmp(constvoid*_a,constvoid*_b){inta=*(int*)_a,b=*(int*)_b;returna-b;//a-b是从左......
  • MybatisPlus之LambdaQueryWrapper简单用法
    简单查询(推荐)LambdaQueryWrapper<User>wrapper=newLambdaQueryWrapper<>();wrapper.eq(User::getUserId,id);wrapper.like(User::getUserName,userName);List......
  • vector的用法
    介绍vector(矢量;向量),vector是C++标准模板库(STL)中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vect......