队列和栈的用法

1、队列(*****)先进先出

  a.栈空: 队首标志=队尾标志时,表示栈空。

  b.栈满 : 队尾+1 = 队首时,表示栈满。

    使用标准库的队列时, 应包含相关头文件,在栈中应包含头文件: #include< queue> 。定义:queue< int > q;

******q.empty()               如果队列为空返回true则返回false

******q.size()                返回队列中元素的个数

******q.pop()                 删除队列首元素但不返回其值

******q.front()               返回队首元素的值,但不删除该元素

******q.push(x)                在队尾压入新元素

******q.back()                返回队列尾元素的值,但不删除该元素

#include <queue>

#include <iostream>

using namespace std;

int main(){

queue<int> q;

for (int i = 0; i < 10; i++){

        q.push(i);

}

if (!q.empty()){

        cout << "队列q非空!" << endl;

        cout << "q中有" << q.size() << "个元素" << endl;

}

cout << "队头元素为:" << q.front() << endl;

cout << "队尾元素为:" << q.back() << endl;

for (int j = 0; j < 10; j++){

        int tmp = q.front();

        cout << tmp << " ";

        q.pop();

}

cout << endl;

if (!q.empty()){

        cout << "队列非空!" << endl;

}

system("pause");

return 0;

}

2、栈:(栈是先进后出)

实现一种先进后出的数据结构,是一个模板类.

头文件 #include<stack>

用法如下:

stack <int> s;     //定义一个int型

s.empty();                        //返回栈是否为空

s.size();                        //返回当前栈中元素的个数  

s.push();                       //在栈顶上堆进一个元素

s.pop();                        //删除掉栈顶上的元素

s.top();                        //返回栈顶的元素,并不会删除

实例代码如下

#include <iostream>

#include <stack>

using namespace std;

int main()

{

       stack<int> s;

       cout<<"stack empty?  "<<s.empty()<<endl;

       for(int i=0;i<5;i++)

       {

              s.push(i);        //入栈

       }

       cout<<"stack empty?  "<<s.empty()<<endl;

       cout<<"stack size:   "<<s.size()<<endl;

       cout<<endl;

       for(int i=0;i<5;i++)

       {

              cout<<"stack top:  "<<s.top()<<endl;

              s.pop();                 //出栈     

       }

       return 0;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值