当前位置:首页 » 编程语言 » c语言链表的删除

c语言链表的删除

发布时间: 2023-08-05 23:05:21

㈠ C语言如何删除链表头节点

这种删除方法是头节点存放值的,这样可以清楚的看到是否删除掉了头节点。

用p保存头节点 p=head;

head指向下一个节点,成为新的头节点head=p->next;

释放原来的头节点 free(p);


#include<iostream>
#include<stdio.h>
#include<stdlib.h>
voidprintList(structnode*head);
structnode*delHead(structnode*head);
structnode{
intdata;
structnode*next;
};
intmain(){
inti;
structnode*tail,*head,*p;
//尾插法插入数据
p=(structnode*)malloc(sizeof(structnode));
p->data=0;
tail=head=p;
tail->next=NULL;
for(i=1;i<10;i++){
p=(structnode*)malloc(sizeof(structnode));
tail->next=p;
p->data=i;
p->next=NULL;
tail=p;
}
printList(head);
head=delHead(head);
printList(head);
system("pause");
return0;
}
//删除头结点
structnode*delHead(structnode*head){
structnode*p=head;
head=p->next;
free(p);
returnhead;
}
//打印链表
voidprintList(structnode*head){
structnode*p=head;
while(p!=NULL){
printf("%i",p->data);
p=p->next;
}
printf(" ");
}

㈡ C语言中链表怎么删除结点

有分才有动力啊哥们。

删除节点很简单,以单链表为例,牢记三点

  1. 避免断链,删除掉节点后,前一个节点的p->next一定要指向后一个节点(如果是头节点,记得要将新表头P指向到原来的第二个节点。如果是尾节点,记得要将新的尾节点p->next置为NULL,)。

  2. 避免野指针,删除掉节点后,p->next=NULL;

  3. 避免内存泄漏,删除的节点,要用free释放堆内存。

如果是双向链表,不过是多了一个对prev操作,道理是一样的。

热点内容
编译翻译运行 发布:2025-02-06 21:05:20 浏览:200
安卓源码版本 发布:2025-02-06 20:51:34 浏览:431
安卓系统网络播放器哪个好 发布:2025-02-06 20:42:02 浏览:818
头条缓存的视频格式 发布:2025-02-06 20:32:18 浏览:116
ftp不显示文件夹 发布:2025-02-06 20:30:37 浏览:127
苹果手机解压怎么打开 发布:2025-02-06 20:29:35 浏览:476
单片机程序存储器 发布:2025-02-06 20:29:31 浏览:209
串的c语言 发布:2025-02-06 20:25:44 浏览:750
编程函数总结 发布:2025-02-06 20:09:11 浏览:317
编程obj 发布:2025-02-06 19:59:52 浏览:845