博客
关于我
链表删除节点
阅读量:135 次
发布时间:2019-02-28

本文共 1840 字,大约阅读时间需要 6 分钟。

在C语言中,我们可以通过动态内存管理来操作链表。以下是实现链表操作的代码解释:

首先,我们定义了一个链表节点结构:

typedef struct LinkNode{
int num;
LinkNode* next;
}Lk, * lk;

初始化链表时,我们创建一个头节点,并返回其指针:

lk initLinkNode(){
//创建头结点
lk headNode = (lk)malloc(sizeof(Lk));
//检验内存分配是否成功
if (headNode == NULL){
return NULL;
}
//初始化头结点
headNode->num = -1;
headNode->next = NULL;
//记录当前节点位置
lk currentNode = headNode;
//用户输入数值
int val = -1;
while(1){
printf("请给当前链表赋值,输入-1结束输入:\n");
scanf("%d", &val);
if(val == -1){
break;
}
//分配新节点存储输入值
lk node = (lk)malloc(sizeof(Lk));
node->num = val;
node->next = NULL;
//将新节点连接到链表末尾
currentNode->next = node;
//更新当前节点位置
currentNode = currentNode->next;
}
return headNode;
}

遍历链表的实现如下:

void for_each_linkList(lk headNode){
if(headNode == NULL){
return;
}
//从第二个节点开始遍历
lk curNode = headNode->next;
while(curNode){
printf("%d\n", curNode->num);
curNode = curNode->next;
}
}

删除链表节点的实现:

void delete_LinkList(lk headNode, int val){
if(headNode == NULL){
return;
}
//创建辅助指针
lk prveNode = (lk)malloc(sizeof(Lk));
lk curNode = (lk)malloc(sizeof(Lk));
prveNode = headNode;
curNode = headNode->next;
//查找需要删除的节点
while(curNode){
if(curNode->num == val){
break;
}
prveNode = curNode;
curNode = curNode->next;
}
//如果未找到节点
if(curNode == NULL){
return;
}
//删除节点
prveNode->next = curNode->next;
free(curNode);
curNode = NULL;
}

主函数实现链表的操作:

int main(){
lk headNode = initLinkNode();
delete_LinkList(headNode, 20);
printf("链表遍历结果为:\n");
for_each_linkList(headNode);
return 0;
}

转载地址:http://qewc.baihongyu.com/

你可能感兴趣的文章
Nginx日志分析系统---ElasticStack(ELK)工作笔记001
查看>>
Nginx映射本地json文件,配置解决浏览器跨域问题,提供前端get请求模拟数据
查看>>
nginx最最最详细教程来了
查看>>
Nginx服务器---正向代理
查看>>
Nginx服务器上安装SSL证书
查看>>
Nginx服务器的安装
查看>>
Nginx模块 ngx_http_limit_conn_module 限制连接数
查看>>
nginx添加模块与https支持
查看>>
Nginx用户认证
查看>>
Nginx的location匹配规则的关键问题详解
查看>>
Nginx的Rewrite正则表达式,匹配非某单词
查看>>
Nginx的使用总结(一)
查看>>
Nginx的使用总结(三)
查看>>
Nginx的使用总结(二)
查看>>
Nginx的可视化神器nginx-gui的下载配置和使用
查看>>
Nginx的是什么?干什么用的?
查看>>
Nginx访问控制_登陆权限的控制(http_auth_basic_module)
查看>>
nginx负载均衡和反相代理的配置
查看>>
nginx负载均衡器处理session共享的几种方法(转)
查看>>
nginx负载均衡的5种策略(转载)
查看>>