插入-------在第i个结点前插入值为e的新结点
( 算法步骤)
思考:步骤1与步骤2能互换执行吗?先执行步骤2,再执行步骤1?
答:不可以,因为这样ai的地址就丢失了
算法描述:
//在L中第i个元素后,插入数据e
void createNode(LinkList L,int e)
{
int j = 0; //计数器
P = L; //构建空表
while (p&&j<i-1) // 寻找第i - 1个结点,让p指向第i-1个元素
{
p = p->next;
j++;
}
if(!p||j>i-1)
return error; //插入错误
else
{
S = (ND*)malloc(sizeof(ND)); //开辟新节点s
s-> data = e; //将数据e放入结点s
s->next = p->next; //步骤1
p->next = s; //步骤2
}
return ok;
}