zoukankan      html  css  js  c++  java
  • 数据结构--数组模拟双链表

     1 // (1) 在最左侧插入一个数;
     2 
     3 // (2) 在最右侧插入一个数;
     4 
     5 // (3) 将第k个插入的数删除;
     6 
     7 // (4) 在第k个插入的数左侧插入一个数;
     8 
     9 // (5) 在第k个插入的数右侧插入一个数
    10 #include<iostream>
    11 #include<algorithm>
    12 using namespace std;
    13 const int N=100010;
    14 int e[N],l[N],r[N],idx;
    15 int m;
    16 void init(){
    17     r[0]=1;
    18     l[1]=0;
    19     idx=2;
    20 }
    21 void insert(int k,int x){
    22     e[idx]=x;
    23     l[idx]=k;
    24     r[idx]=r[k];
    25     l[r[k]]=idx;
    26     r[k]=idx;
    27     idx++;
    28 }
    29 void remove(int k){
    30     l[r[k]]=l[k];
    31     r[l[k]]=r[k];
    32 }
    33 int main(void){
    34     init();
    35     cin>>m;
    36     for(int i=0;i<m;i++){
    37         string s;
    38         int k,x;
    39         cin>>s;
    40         if(s=="L"){
    41             cin>>x;
    42             insert(0,x);
    43         }else if(s=="R"){
    44             cin>>x;
    45             insert(l[1],x);
    46         }else if(s=="D"){
    47             cin>>k;
    48             remove(k+1);
    49         }else if(s=="IL"){
    50             cin>>k>>x;
    51             insert(l[k+1],x);
    52         }else if(s=="IR"){
    53             cin>>k>>x;
    54             insert(k+1,x);
    55         }
    56     }
    57     for(int i=r[0];i!=1;i=r[i]){
    58         cout<<e[i]<<" ";
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    SpringBoot04-web
    springboot03-日志功能
    SpringBoot02-自动配置原理
    SpringBoot02
    SpringBoot01
    八大排序算法
    SpringSecurity04
    SpringSecurity03
    SpringSecurity02
    SpringSecurity01
  • 原文地址:https://www.cnblogs.com/greenofyu/p/13943452.html
Copyright © 2011-2022 走看看