静态链表删除节点
删除静态链表第 i 个节点
void my_free(static_list_link *L, int q) { //模拟释放空间 L[q].next = L[0].next; L[0].next = q; } bool Delete(static_list_link *L, int i, int *val) { int j = 1; //表示 p 下一个节点是第几个 int p = MAX - 1; // p 为头节点 while(L[p].next && j < i) { //循环,出来后, p 下一个节点为第 i 个 p = L[p].next; j++; } if(!L[p].next || j > i) return false; //如果不满足 int q = L[p].next; // q 表示第 i 个节点 *val = L[q].date; //赋值连接 L[p].next = L[q].next; my_free(L, q); //释放 q = 0; L[MAX - 1].date--; //真实节点个数减一 return true; }