C++ 指针模拟:数组实现插入和查询操作
#include<bits/stdc++.h>\nusing namespace std;\ninline static const nullptr_t _={\n ios_base::sync_with_stdio(0);\n cin.tie(nullptr),cout.tie(nullptr);\n return nullptr;\n}();\nauto main()->int{\n int n,q;\n cin>>n>>q;\n int *a=new int[n];\n for(int i=0;i<n;i++) cin>>a[i];\n int *prev=new int[n];\n int *next=new int[n];\n for(int i=0;i<n;i++){\n prev[i]=i-1;\n next[i]=i+1;\n }\n next[n-1]=-1;\n for(int i=0;i<q;i++){\n int o,k;\n cin>>o>>k;\n switch(o){\n case 1:\n int v;\n cin>>v;\n int pos=k-1,left=prev[pos],right=next[pos];\n a[n]=v;\n next[n]=right;\n prev[n]=pos;\n prev[right]=n;\n next[pos]=n;\n n++;\n break;\n case 2:\n cout<<a[k-1]<<'\n';\n break;\n }\n }\n delete[] a;\n delete[] prev;\n delete[] next;\n return 0;\n}
原文地址: https://www.cveoy.top/t/topic/pBhX 著作权归作者所有。请勿转载和采集!