int InsList(LinkList L, int i, ElemType e)
{ Node *pre, *s;
if (i<1) return ERROR;
pre=( (i==1) ? L : Get(L,i-1) ); // 找插入位置的前驱
if (pre==NULL)
{ printf(";插入位置不合理!";); return ERROR; }
s=(Node *)malloc(sizeof(Node));
s->data=e; s->next=pre->next; pre->next=s;
return OK;
}
可以,链表关系如下,其中蓝色箭头表示的是指针,黑色方块表示链表节点,每个节点由数据data和指向下一个节点的指针next构成,假设pre的下一个节点叫t,s=(Node *)malloc(sizeof(Node));s->data=e;,是创建一个指针s,指向存放着e数据的节点,也就是说s就是要插入的节点
s->next=pre->next; pre->next=s表示的就是把s的下一个指向pre的下一个,也就是t,然后把pre的下一个指向s
这样就完成了s的插入