AcWing双链表

打印 上一主题 下一主题

主题 1741|帖子 1741|积分 5223


0索引记载头结点,1索引是尾节点,idx从2开始记载
L和R是前面的索引和背面索引的数组,e是存储的元素的数组,k+1的原因:k是表示第k个插入的元素,                                   k                         ∈                         [                         1                         ,                         inf                         ⁡                         ]                              k\in [1,\inf]                  k∈[1,inf].但是                                   i                         d                         x                         ∈                         [                         2                         ,                         inf                         ⁡                         ]                              idx\in [2,\inf]                  idx∈[2,inf],以是如果要对应上数组内里的话,就要k+1
末了的遍历链表,循环制止i!=1的原因是开头设置了0索引是头结点,1索引是尾节点,i代表了索引,以是i!=1的时间就是没有到尾节点!
  1. #include<iostream>
  2. #include<string>
  3. #define N 100086
  4. using namespace std;
  5. int M,op,k,x,idx;
  6. int e[N],l[N],r[N];
  7. void init(){
  8.     r[0]=1,l[1]=0,idx=2;
  9. }
  10. void insert(int k,int x){
  11.     e[idx]=x;
  12.     r[idx]=r[k];
  13.     l[idx]=l[r[k]];
  14.     l[r[k]]=idx;
  15.     r[k]=idx++;
  16. }
  17. void remove(int k,int x){
  18.     r[l[k]]=r[k];
  19.     l[r[k]]=l[k];
  20. }
  21. int main(){
  22.     cin>>M;
  23.     init();
  24.     while(M--){
  25.         string op;
  26.         cin>>op;
  27.         if(op=="L"){
  28.             cin>>x;
  29.             insert(0,x);
  30.         }else if(op=="R"){
  31.             cin>>x;
  32.             insert(l[1],x);
  33.         }else if(op=="D"){
  34.             cin>>k;
  35.             remove(k+1,x);
  36.         }else if(op=="IL"){
  37.             cin>>k>>x;
  38.             insert(l[k+1],x);
  39.         }else if(op=="IR"){
  40.             cin>>k>>x;
  41.             insert(k+1,x);
  42.         }
  43.     }
  44.     for(int i=r[0];i!=1;i=r[i]) cout<<e[i]<<" ";
  45.     cout<<endl;
  46.     return 0;
  47. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊落一身雪

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表