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

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

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

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


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

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

分享给朋友:

相关文章

拓扑排序

拓扑排序

一、定义对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则...

指针(二):指针与数组

1.指针与数组的关系    指向数组的指针变量称为数组指针变量。“数组是内存上一块连续的空间”。数组名就是这块连续空间的首地址。2.指针指向数组  &...

CSP-J2021年普及组复赛T3——网络连接

【题目描述】TCP/IP 协议是网络通信领域的一项重要协议。今天你的任务,就是尝试利用这个 协议,还原一个简化后的网络连接场景。在本问题中,计算机分为两大类:服务机(Server)和客户机(Clie...

如何估算时间复杂度

首先:  常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n^2)<Ο(n^3)<…<Ο(2^n)<Ο(n!)时间复杂度可以简单理解为最多执...

判断闰年

代码参考:#include<iostream>  using namespace std; //判断闰年的函数  int leap(...

【入门篇】>>> DEVC++下载、安装、简单使用

【入门篇】>>> DEVC++下载、安装、简单使用

什么是DEVC++    DEVC++是一款编程工具,是一个Windows环境下的一个适合于初学者使用的轻量级C/C++ 集成开发环境(IDE),它是一款自由软件,遵守G...