• 2023-会漏的栈


    描述

     

    从前从前,有一个容量为K的栈...容量为K的意思是指,如果该栈里已经有K个元素了,现在还要再压一个元素x进去,则原栈底部的元素就会消失,然后就有一个空余的空间来把x压进栈里面。 例如K = 3,原栈从底部到顶部的元素分别为1,2,3,现在要压4进去,则底部的1会消失,2往下掉变成底部元素,3也往下掉,最后4压进来。整个栈的元素自底向顶序列就变成2,3,4.

    so, 现在给该容器的容量K,和m个操作序列,操作分两种: <1> push x      把x压入栈,x < 2^32 <2> pop         栈顶元素出栈 对于每个<2>操作,输出出栈的元素,若在操作前栈就已经为空,则输出"Empty!"(不包含引号).

    //如果不知道什么是栈的话,自行搜索...如有不便,敬请原谅-_-

    输入

    第一行两个个整数K, m (1 <= K <= 100, 1 <= m <=10000) 接下来m行,每行表一个操作,如上所述。

    输出

    对于每个pop操作,输出其结果

    样例输入

    1 5

    push 3

    push 2

    pop

    push 4

    pop

    样例输出

    2

    4

    #include<iostream>
    #include<string>
    using namespace std;
    
    int main()
    {
        int n,m;
        cin>>n>>m;
        int *a=new int[n];
        int size=0;
        while(m--)
        {
            string ch;
            int x,i;
            cin>>ch;
            if(ch=="push")
            {
                cin>>x;
                for(i=0;i<n;i++)
                {
                    a[i]=a[i+1];
                }
                
                a[n-1]=x;
                if(size<n) size++;
            }
            if(ch=="pop")
            {
                if(size==0) cout<<"Empty!"<<endl;
                else
                {
                    cout<<a[n-1]<<endl;
                    for(i=n-1;i>=0;i--)
                    {
                        a[i]=a[i-1];
                    }
                    size--;
                }
            }
        }
        delete []a;
        return 0;
    } 
    

      

  • 相关阅读:
    @Value不能给静态变量直接赋值问题
    jmeter测试http请求
    SqlServer单步调试
    mysql锁住 Lock wait timeout exceeded; try restarting transaction
    django在model中添加字段报错
    django admin下拉列表不显示值,显示为object的处理
    (原创推荐文章)kerberos服务器端与客户端
    kafka安装与测试
    Linux shell判断文件和文件夹是否存在
    df -h 卡死 如何解决
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3438691.html
Copyright © 2020-2023  润新知