线性表常见操作代码

顺序表插入

int insert(int a[], int *n, int i, int x) {
    if (i < 0 || i > *n) return 0;
    for (int k = *n; k > i; --k) a[k] = a[k-1];
    a[i] = x; (*n)++;
    return 1;
}

单链表在 p 后插入

typedef struct Node {
    int val;
    struct Node *next;
} Node;

void insert_after(Node *p, int x) {
    Node *s = (Node*)malloc(sizeof(Node));
    s->val = x;
    s->next = p->next;
    p->next = s;
}