zoukankan      html  css  js  c++  java
  • 单链表(数组实现)

    在部分算法题中可能会用到链表,如果创造一个传统的链表再进行操作

    会浪费很多时间,于是使用数组来模拟链表,由于只是单纯的做题,一些

    细节可以忽略。

     1 #include <iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 const int N = 100010;
     5 int idx, e[N], ne[N], head;
     6 void init(){    //初始化
     7     idx = 0;
     8     head = -1;
     9 }
    10 void add_to_head(int x){    //往头节点添加节点
    11     e[idx] = x;
    12     ne[idx] = head;
    13     head = idx;
    14     idx ++;
    15 }
    16 void add(int k, int x){
    17     e[idx] = x;
    18     ne[idx] = ne[k];
    19     ne[k] = idx;
    20     idx ++;
    21 }
    22 void remove(int k){
    23     ne[k] = ne[ne[k]];
    24 }
    25 int main(){
    26     init();
    27     int m;
    28     cin >> m;
    29     while(m --){
    30         int x;
    31         char op;
    32         cin >> op;
    33         if(op == 'H'){
    34             cin >> x;
    35             add_to_head(x);
    36         }else if(op == 'I'){
    37             int k;
    38             cin >> k >> x;
    39             add(k - 1, x);
    40         }else{
    41             cin >> x;
    42             if(x == 0)
    43                 head = ne[head];
    44             remove(x - 1);
    45         }
    46     }
    47     for(int i = head; i != -1; i = ne[i]) cout << e[i] << ' ';
    48     return 0;
    49 }
  • 相关阅读:
    四、git学习之——分支管理、解决冲突
    四、git学习之——远程仓库
    异常
    内部类
    接口
    Java三大特性之多态
    抽象类、抽象方法、final、Object类
    Java三大特性之继承
    Java三大特性之封装
    代码块、Package、Import
  • 原文地址:https://www.cnblogs.com/pureayu/p/13614443.html
Copyright © 2011-2022 走看看