问题描述
- 关于单链表的删除算法
-
typedef int ElemType;
typedef struct Node //结点结构
{
ElemType data;
struct Node *next;
}Node;
typedef struct Node *LinkList;Status ListDelete(LinkList *L,int i,ElemType *e) //单链表删除
{
int j; LinkList p,q; p = *L; j = 1;
while (p->next && j < i)
{ p = p->next; ++j;}
if (!(p->next) || j > i)
return ERROR;
q = p->next;
p->next = q->next;
*e = q->data; //?????没明白这句作用
free(q);return OK;
}就是注释的那句实在想不明白是干嘛用的,求解~~~
解决方案
注意看你传进去的最后一个参数 ElemType *e 这个明显是传进去的一个指针对吧 传指针进去的话 在结构体里面做的那些操作对参数e是有影响的 那句话的意思明显是为了在删除之前把数值提取出来并传入你的mian函数的
解决方案二:
单链表的插入与删除算法
单链表插入与删除算法
单链表 算法(删除中间节点)
解决方案三:
保存一下q的data值
时间: 2024-11-03 13:26:33