C++ 数组模拟指针:动态插入和查询元素
#include<bits/stdc++.h>\nusing namespace std;\ninline static const nullptr_t _={\n\tios_base::sync_with_stdio(0);\n\cin.tie(nullptr),cout.tie(nullptr);\n\return nullptr;\n}();\nauto main()->int{\n\tint n,k,v,o;\n\cin>>n;\n\tint *a=new int[n];\n\tfor(int i=0;i<n;i++) cin>>a[i];\n\tint *prev=new int[n];\n\tint *next=new int[n];\n\tfor(int i=0;i<n;i++){\n\t\tprev[i]=i-1;\n\t\tnext[i]=i+1;\n\t}\n\tnext[n-1]=-1;\n\tfor(int i=0;i<n;i++){\n\t\tcin>>o>>k;\n\t\tswitch(o){\n\t\t\tcase 1:\n\t\t\t\tcin>>v;\n\t\t\t\tint pos=k-1,left=prev[pos],right=next[pos];\n\t\t\t\ta[n]=v;\n\t\t\t\tnext[pos]=n;\n\t\t\t\tnext[n]=right;\n\t\t\t\tprev[n]=pos;\n\t\t\t\tif(right!=-1){\n\t\t\t\t\tprev[right]=n;\n\t\t\t\t}\n\t\t\t\tn++;\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tint ans=a[k-1];\n\t\t\t\tcout<<ans<<'\n';\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tdelete[] a;\n\tdelete[] prev;\n\tdelete[] next;\n\treturn 0;\n}\n
原文地址: https://www.cveoy.top/t/topic/pBh4 著作权归作者所有。请勿转载和采集!