栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

827. 双链表(DAY 57)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

827. 双链表(DAY 57)

文章目录
  • 1:题目
  • 2:代码实现

1:题目


2:代码实现
  #include
 using namespace std;
 const int N=1000010;
 
 int m;
 int e[N],l[N],r[N],idx;
 
 void init()
 {
     r[0]=1,l[1]=0;
     idx=2;
 }
 //在k结点右边插入一个x
 void add(int k,int x)
 {
     e[idx]=x;
     r[idx]=r[k];
     l[idx]=k;
     l[r[k]]=idx;
     r[k]=idx++;
     
 }
 
 void remove(int k)
 {
     r[l[k]]=r[k];
     l[r[k]]=l[k];
 }
 
 
 int main()
 {
     int m;
     cin>> m;
     
     init();
     
     while (m -- ){
         string op;
         int k,x;
         cin>> op;
         
              
        if(op=="L")
        {
            cin>> x;
            add(0,x);      //0   对称美     最上面最下面不带数组,中间两个带数组。
        }
        else if(op=="R")
        {
            cin>> x;
            add(l[1],x);    //l[1]
        }
        else if(op=="D")
        {
            cin >> k;
            remove(k+1);    
        }
        else if(op=="IL")
        {
            cin >> k>> x;
            add(l[k+1],x);//  l[k+1]
        }
        else 
        {
            cin >>k>> x;
            add(k+1,x);//k +1
        }
    }
     
     for(int i=r[0];i!=1;i=r[i])cout << e[i]<< ' ';
     cout << endl;
     return 0;
 }
 
 
 

 


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892571.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号