list模板题

题面:

设计一个int类型的动态链表L,L中有一个代表当前位置的光标,支持下列操作:
insert(x): 在光标前面插入元素x,插入后光标指向新插入的元素x
move(d): 如果d为正数,则光标向尾部移动d个位置,如果为负数,则向头部移动
erase(): 删除光标当前指向的元素,完成后光标向尾部移动一个位置,如果没有元素可指向,则光标值为END。
L的初始状态为空,且光标指向END

注意事项:

insert返回值是插入元素的位置,而其又会在插入元素后自动后移,无法达到题目要求的“插入后光标指向新插入的元素x”,所以指针要保持原来的位置。

#include<cstdio>
#include<list>
#include<iostream> 
using namespace std;
list<int> s;
list<int>::iterator p;
int main()
{
    int q,pd,x;
    scanf("%d",&q);
    p=s.begin();
    for(int i=1;i<=q;i++)
    {
        scanf("%d",&pd);
        if(pd==0)
        {
            scanf("%d",&x);
            p=s.insert(p,x);
        }
        else
        if(pd==1)
        {
            scanf("%d",&x);
            if(x>0)
            {
                while(x--)
                {
                    p++;
                }
            }
            else
            {
                x=-x;
                while(x--)
                {
                    p--;
                }
            }
        }
        else
        {
            p=s.erase(p);
        }
    }
    for(p=s.begin();p!=s.end();p++)
    {
        printf("%d\n",*p); 
    }
    return 0;
} 
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:46
和女友两个人马上毕业,现在我在鹅实习995,周六日偶尔也去北京;她在北京金融007,经常忙到后半夜,周末也没啥休息机会两个人现在都不咋聊天了,一句话隔半小时甚至半天才回。&nbsp;她是个很优秀的妹子,工作也很努力,是值得学习一辈子的人。我在努力工作求转正,即便不行至少赚到了一段不错的实习经历。已经异地了半年,接下来可能还会持续是这个状态。我们都算是对方重要的人,只是感觉看上去不是很有未来的样子。希望牛友们给点的鼓励
梦旅奇缘:很难。异地首先就已经很难了,加上妹子是金融行业,忙碌高压,对情感需求很高,而且见惯纸醉金迷,你的很多优势在她那里可能就不算什么了。这种情况下,在她们那里遇到一个能及时照顾她的人,即使那人可能很多条件不如你,你也有可能被分手。 说白了,两个卷王就不太适合在一起。因为卷王最大的优势,在另一个卷王那里就不算优势了。
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 17:02
鼠鼠深知pdd的强度很大,但是现在没有大厂offer,只有一些不知名小厂我是拒绝等秋招呢,还是接下?求大家帮忙判断一下!
水中水之下水道的鼠鼠:接了再说,不图转正的话混个实习经历也不错
投递拼多多集团-PDD等公司10个岗位 >
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务