数据结构--数组模拟单链表
复制代码
 1 // (1) 向链表头插入一个数;
 2 
 3 // (2) 删除第k个插入的数后面的数;
 4 
 5 // (3) 在第k个插入的数后插入一个数
 6 #include<iostream>
 7 #include<algorithm>
 8 using namespace std;
 9 const int N=100010;
10 int e[N],ne[N],head,idx;
11 void init(){
12     head=-1;
13     idx=0;
14 }
15 void add_to_head(int x){
16     e[idx]=x;
17     ne[idx]=head;
18     head=idx;
19     idx++;
20 }
21 void remove(int k){
22     ne[k]=ne[ne[k]];
23 }
24 void add(int k,int x){
25     e[idx]=x;
26     ne[idx]=ne[k];
27     ne[k]=idx;
28     idx++;
29 }
30 int main(void){
31     init();
32     int m;
33     cin>>m;
34     for(int i=0;i<m;i++){
35         char op;
36         int k,x;
37         cin>>op;
38         if(op=='H'){
39             cin>>x;
40             add_to_head(x);
41         }else if(op=='D'){
42             cin>>k;
43             if(k==0){
44                 head=ne[head];
45             }else{
46                 remove(k-1);
47             }
48         }else if(op=='I'){
49             cin>>k>>x;
50             add(k-1,x);
51         }
52     }
53     for(int i=head;i!=-1;i=ne[i]){
54         cout<<e[i]<<" ";
55     }
56     return 0;
57 }
复制代码

 

posted on   greenofyu  阅读(79)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示