单链表的插入
时间复杂度:O(n)
- 查找节点ai-1并由指针指向该节点
- 生成一个新节点*s
- 将新节点*s的数据域置为e
- 将新节点*s的指针域指向节点ai
- 将节点*p的指针域指向新节点*s
Status ListInsert(List *L,int i,ElemType e) //在指定位置插入数据域为e的节点
{
List* p = L,*node;
int j = 0; //从头结点开始
while(p&&j<i-1) //顺序往后扫描,直到p为空或p所指节点为指定位置的上一个节点
{
p = p->next;
++j;
}
if(!p||j>i-1) //i>n+1或i<1,因为j的初始值为0
return ERROR;
node = (