静态链表插入
在静态链表第 i 个位置前插入数 val
//从备用链表中获取新节点 int my_malloc(static_list_link *L) { int t = L[0].next; //定义 t 为备用链表第一个节点 L[0].date--; //备用节点个数减一 if(t) L[0].next = L[t].next; //如果 t 不为空备用节点前进一个节点 return t; //返回新节点 } //插入 bool Insert(static_list_link *L, int i, int val) { if(i < 1 || i > L[MAX - 1].date + 1) return false; //如果位置 i 不合理,插入失败 int p = MAX - 1; //定义 p 为头节点,下一个节点为第一个节点 int q = my_malloc(L); //定义 q 申请一个新节点 if(q) { //如果 q 不为空 for(int j = 1; j < i; j++) p = L[p].next; //循环 p 下一个节点为第 i 个节点 L[q].date = val; //赋值连接 L[q].next = L[p].next; L[p].next = q; L[MAX - 1].date++; //节点个数加一 return true; } return false; // q 为空返回无法插入 }