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

【数据结构】栈的基本操作

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

0.前言

上一篇中简单介绍了栈的定义,这一篇中介绍栈的基本用法,包含压栈,出栈,判断栈空,判断栈中元素个数等。下面进行详细介绍


1.基本用法

本文介绍的栈的主要操作,使用栈之前加入<stack>头文件。基本用法如下:

s.push(item);       //将item压入栈顶  
s.pop();            //删除栈顶的元素,但不会返回  
s.top();            //返回栈顶的元素,但不会删除  
s.size();           //返回栈中元素的个数  
s.empty();          //检查栈是否为空,如果为空返回true,否则返回false


2.定义栈

格式:stack<数据类型>栈名

例如:

#include<iostream>
#include<stack>
using namespace std;
int main(){
	stack<int> s; //定义一个栈,名字是s 
	return 0;
}


3.入栈

#include<iostream>
#include<stack>
using namespace std;
int main(){
	stack<int> s; //定义一个栈,名字是s 
	//方式1:读取50个数入栈 
	for(int i=0;i<50;i++){
        s.push(i);
    }
    
    //方式2:只要是数字就入栈,不限定长度 
	while(cin>>num)  
    {  
        s.push(num);  
    }  
    
	return 0;
}

4.测量栈的大小

跟以前学过的string的用法类似,可以用size来测量

#include<iostream>
#include<stack>
using namespace std;
int main(){
	stack<int> s; //定义一个栈,名字是s 
	int num;
    //方式2:只要是数字就入栈,不限定长度 
	while(cin>>num)  
    {  
        s.push(num);  
    }  
    cout<<"栈的长度是:"<<s.size()<<endl; 
	return 0;
}


5.出栈、判断为空、栈定元素


#include<iostream>
#include<stack>
using namespace std;
int main(){
	stack<int> s; //定义一个栈,名字是s 
	int num;
    //方式2:只要是数字就入栈,不限定长度 
	while(cin>>num)  
    {  
        s.push(num);  
    }  
    cout<<"栈的长度是:"<<s.size()<<endl; 
     while(!s.empty())   //判断栈是否为空 
    {  
        cout<<s.top()<<" ";  //输出栈定元素 
        s.pop();   //出栈一个元素 
    }  
    cout<<"\n 当前栈的长度是:"<<s.size()<<endl; 
	return 0;
}


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

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

    分享给朋友:

    相关文章

    【图】并查集—优化

    【图】并查集—优化

    上一篇文章,简单介绍了并查集。这篇文章,介绍一下并查集的改进以及优化。find函数的优化(路径压缩)因为并查集的merge操作:void merge(int a, int...

    质数(素数)的判断

    一、定义法// 1 定义法(除了1和他本身之外,没有任何一个数能被整除)(试除法) bool is_prime3(unsigned long lon...

    如何计算一个程序的运行时间(防止超时)

    再一些OJ系统中,做题的时候常常会超时,但是很多人不知道自己的程序是否会超时,不知道如何检查自己的程序。这篇文章主要介绍几种监测自己程序运行时间的程序。头文件<time.h> ...

    【STL】二分查找函数 lower_bound 和 upper_bound

    一、 lower_bound【功能】在数组a中从a[begin]开始到a[end - 1]按照cmp函数来比较进行二分查找第一个大于等于k的数的地址,如果有第一个大于等于k的数则返回该数的地...

    【数论】常见的距离度量方法

    【数论】常见的距离度量方法

    一、欧式距离欧式距离(Eucliden Metric,也是欧几里得度量)是一个通常采用的距离定义,旨在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点距离)。在二维和三维空间中的欧氏距...

    C++小项目——实时钟表

    C++小项目——实时钟表

    0.前言在很多游戏中,我们要使用时间,这个时间一个是系统当前的时间,一个是服务器给你的时间。这篇文章我们尝试做一个模拟时钟。效果图如下1.任务分解1.首先我们尝试使用easyx来画一个。基本框架如下:...