在单链表L中删除值为e的结点,并根据返回值判断是否删除
1个回答
展开全部
如果是多个值为e的结点,则算法还需要加一点东西
struct Node
{ /* 单链表类型声明 */
ElemType data; /* 数据域 */
struct Node *next; /* 指针域 */
};
;
int Find(Node *head, ElemType e)
{ /* 在带头结点单链表中查找值e,成功则删除并返回1,否则返回0 */
Node *p, *q;
p = head->next;
q = head;
while (p != NULL && p->data != e)
{
q = p;
p = p->next;
}
if (p != NULL)/* 查找成功 */
{
q->next = p->next;
free(p);
return 1;
}
else
return 0;
}
struct Node
{ /* 单链表类型声明 */
ElemType data; /* 数据域 */
struct Node *next; /* 指针域 */
};
;
int Find(Node *head, ElemType e)
{ /* 在带头结点单链表中查找值e,成功则删除并返回1,否则返回0 */
Node *p, *q;
p = head->next;
q = head;
while (p != NULL && p->data != e)
{
q = p;
p = p->next;
}
if (p != NULL)/* 查找成功 */
{
q->next = p->next;
free(p);
return 1;
}
else
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询