您的位置:首页 > 其它

单链表删除节点

2015-07-31 21:28 218 查看


单链表删除节点











node *del(node *head, int num)

{

node *p1, *p2;

p1 = head;

while (num != p1->data && p1->next != NULL)

{

p2 = p1;

p1 = p1->next;

}

if (num == p1->data)

{

if (p1 == head)

head = p1->next;

else

p2->next = p1->next;

free(p1);

}

else

printf("\n %d could not been found.",num);

return (head);

}



单链表插入节点








node *insert(node* head, int num)

{

node *p0, *p1, *p2;

p1 = head;

p0 = (node *)malloc(sizeof(node));

p0->data = num;

while (p0->data > p1->data && p1->next != NULL)

{

p2 = p1;

p1 = p1->next;

}

if (p0->data <= p1->data)

{

if (head == p1)

{

p0->next = p1;

head = p0;

}

else

{

p2->next = p0;

p0->next = p1;

}

}

else

{

p1->next = p0;

p0->next = NULL;

}

return (head);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: