|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Status ListDelete(LinkList *L,int i,ElemType *e)
{
int j;
LinkList p,q;
p = *L; // 声明一结点p指向链表第一个结点
j = 1;
while (p->next && j < i) /* 遍历寻找第i个元素 */
{
p = p->next;
++j;
}
if (!(p->next) || j > i)
return ERROR; /* 第i个元素不存在 */
q = p->next;
p->next = q->next; /* 将q的后继赋值给p的后继 */
*e = q->data; /* 将q结点中的数据给e */
free(q); /* 让系统回收此结点,释放内存 */
return OK;
}
这个遍历的结果P不是应该保存第i个结构的地址吗,为什么下面p-next=q->next里面的P好像是第i-1的地址 到底怎么回事??
while (p->next && j < i) /* 遍历寻找第i个元素 */
{
p = p->next;
++j;
} |
|