实现单链表所有结点的删除

实现单链表所有结点的删除,第1张

void DeleteAll(ListNode **head)

{

ListNode *p = *head

if (*head == NULL) //链表为空无需处理

return

while(p->next != NULL) //删除链表非笑粗首结点元素

{

ListNode *q = p->next

p->亏带next = p->next->next

free(q)

}

free(p)//碰空镇删除链表首结点元素

*head = NULL

}

//删除节点 删除第i个节点

int Delete_Positon_LL(LinkList *phead,int i)

{

LinkList p,q//p为值是x的节点,q是p的前一个节点

int j

if((*phead)->next == NULL)//如果链表为空,做下溢处理

{

printf("单链表为空!\n")

return 0

}

if(i == 1) //如果是表头,表头后移

{

p=(*phead)->next

(*phead)->next=(*phead)->next->next

free(p)//释放表头

扩展资料:

链接方式存储的线性表简咐裤察称为链表(Linked List)。链表的具体存储表示为:

① 用一组任意的存纯雀储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)

② 链表中衡茄结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))

链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。

参考资料来源:百度百科-单链表


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12448374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存