使用 C 语言删除链表的头节点和尾节点的逻辑。
链表使用动态内存分配,即它们会根据需要增长和缩小。它是由节点组成的集合。
节点有两个部分,分别是数据和链接。下面将解释这些部分。
链表上的操作
链表上有三种操作,如下所示:
- 插入
- 删除
- 遍历
删除
- 识别节点。
- 调整链接,以便节点的释放不会使列表成为不连贯的组件。
- 返回/显示要删除的元素。
- 释放内存。
删除头节点
请按照以下步骤在 C 编程语言中删除头节点。
1. void del_head() 2. { 3. int x; Node *temp; 4. if(Head==NULL) 5. { 6. printf("List is empty"); 7. return; 8. } 9. x=Head->ele; 10. temp=Head; 11. if(Head==Tail) 12. Head=Tail=NULL: 13. Else 14. Head=Head->next; 15. printf("Deleted element %d",x); 16. free(temp); 17. }
这里,
步骤 4 - 检查列表是否为空。
步骤 9 - 读取要删除的元素。
步骤 10 - 头节点由 temp 指针引用。
步骤 11 - 检查是否为最后一次删除。
步骤 14 - 将头指针移动到列表中的下一个元素。
步骤 15 - 显示要删除的元素。
步骤 16 - 释放内存。
删除尾节点
请按照以下步骤在 C 编程语言中删除尾节点。
1. void del_tail() 2. { 3. int x; 4. Node *temp; 5. if(Head==NULL) 6. { 7. printf("List is empty"); 8. return; 9. } 10. temp=Head; 11. while(temp->next !=Tail) 12. temp=temp->next; 13. x=Tail->ele; 14. Tail=temp; 15. Temp=temp->next 16. Tail->next=NULL; 17. printf("Deleted element %d",x); 18. free(temp); 19. }
这里,
步骤 4 - 检查列表是否为空。
步骤 10、11、12 - 将 temp 指针移动到列表中倒数第二个节点。
步骤 13 - 读取要删除的尾节点元素。
步骤 14 - 将尾指针移动到倒数第二个节点。
步骤 15 - 将 temp 指针移动到列表的最后一个节点。
步骤 16 - 删除尾节点到 temp 节点的引用。
步骤 17 - 显示要删除的元素。
步骤 18 - 释放内存。
广告