栈以及队列的实现

c++队列的基本用法:点击打开链接

首先看一下原c++栈的方法的基本用法: 

  1. push(): 向栈内压入一个成员;
  2. pop(): 从栈顶弹出一个成员;
  3. empty(): 如果栈为空返回true,否则返回false;
  4. top(): 返回栈顶,但不删除成员;
  5. size(): 返回栈内元素的大小;

下面看简单的代码讲解

题目:点击打开链接

代码:


#include <iostream>
#include<stdio.h>
#include<algorithm>
#include<cmath>
#include<string.h>
#include<queue>
#include<stack>
using namespace std;
int main()
{
     int a,b,c,l,i,t=0;
     cin>>a;
     while(a--)
     {
         char z[10];
         scanf("%d%s",&b,z);
         if(strcmp(z,"FIFO")==0)
         {
             queue<int>p;  //构建队列
             while(b--)
             {char c[10];
             scanf("%s",c);


             if(strcmp(c,"IN")==0)
             {
                 scanf("%d",&l);
                 p.push(l);  //入队
             }
             else
             {
                 if(p.empty())  //判断队列是否为空
                 {
                     printf("None\n");
                 }
                 else
                 {
                     printf("%d\n",p.front());
                     p.pop();     //删除队列的元素
                 }
             }
             }
         }
         else
         {
             stack<int>pp;   //构建栈
          while(b--)
         {char c[10];
             scanf("%s",c);


             if(strcmp(c,"IN")==0)
             {
                 scanf("%d",&l);
                 pp.push(l);   入栈
             }
             else
             {
                 if(pp.empty())  //判断栈是否为空
                 {
                     printf("None\n");
                 }
                 else
                 {
                     printf("%d\n",pp.top()); 
                     pp.pop();   //删除元素
                 }
             }
         }
         }
     }


    return 0;
}

猜你喜欢

转载自blog.csdn.net/soul778888/article/details/79758639