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

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

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

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;
}


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

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

分享给朋友:

相关文章

最小生成树—基本概念

一、最小生成树核心概念1. 基本定义一个带权无向连通图的最小生成树,是指从该图中选择若干条边,构成一个包含图中所有顶点的树结构(无环、连通),且所有选中边的权值之和最小。2. 关键性质生成树的本质:包...

DEVC++如何支持C++11

DEVC++如何支持C++11

DEVC++默认开启C++11,需要手动添加C++11支持。DEVC++需要使用高一点的版本,DEVC++5.11下载地址:(1)  官方下载地址: Dev-C++ downloa...

如何判断回文数/回文串

所谓回文,就是从左往右读和从右往左读都是一样的,这样的数字或者字符称为回文数/回文字符。做题的时候经常能看到判断回文操作。判断回文的一般有两种,一种是数字类型,一种是字符类型。两种分别介绍一下。一、回...

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

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

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

【算法】扩展欧几里得算法

一、欧几里得算法我们前面学过求最大公约数的算法:欧几里得算法(又叫辗转相除法) ,一般缩写是gcd,在C++中经常写成如下形式:int gcd(int a,int b)...

第十四届全国青少年信息学奥林匹克联赛初赛试题(NOIP2008年普及组初赛C++试题及参考答案)

第十四届全国青少年信息学奥林匹克联赛初赛试题(NOIP2008年普及组初赛C++试题及参考答案)

第十四届全国青少年信息学奥林匹克联赛初赛试题             ...