数组实现单链表
作者:
Curing
,
2022-02-23 13:04:28
,
所有人可见
,
阅读 204
public class Main {
static int N = 100010;
static int head; //head 表示头节点的下标
static int e[] = new int[N]; //e[i] 表示节点i的值
static int ne[] = new int[N]; //ne[i]表示节点i的next指针是多少
static int idx; //idx 存储当前已经用到哪个点
public static void main(String[] args) {
init();
add_to_head(1);
add(1,2);
remove(1);
}
private static void remove(int k) {
ne[k] = ne[ne[k]];
}
private static void add(int k, int x) {
e[idx] = x; //把插入节点的值 存进e数组
ne[idx] = ne[k]; //把插入节点的指针指向k指向的点
ne[k] = idx; //把k指针指向插入节点
idx++; //插入节点已经放在了idx这个下标 已经使用过了 idx++指向下一个未使用的下标
}
//将x插入到头节点
private static void add_to_head(int x) {
e[idx] = x; //把插入节点的值 存进e数组
ne[idx] = head; //把插入节点的指针指向head指向的点
head = idx; //把head指针指向插入节点
idx++; //插入节点已经放在了idx这个下标 已经使用过了 idx++指向下一个未使用的下标
}
//初始化
private static void init() {
head = -1;
idx = 0;
}
}