当前位置: 首页 > news >正文

C语言程序设计第四版(何钦铭、颜晖)第十一章指针进阶之删除结点

8. 删除结点:输入若干个正整数(输入-1为结束标志)建立一个单向链表,再输入一个整数m,删除链表中值为m的所有结点。试编写相应程序。

#include<stdio.h> #include<stdlib.h> struct num_node{ int x; struct num_node *next; }; struct num_node *createList(struct num_node *head); struct num_node *Insert_node(struct num_node *head,struct num_node *p); struct num_node *Delete_node(struct num_node *head,int m); void print(struct num_node *head); void free_node(struct num_node *head); int main() { struct num_node *L=createList(NULL); int m; scanf("%d",&m); L=Delete_node(L,m); print(L); free_node(L); return 0; } //创建单链表 struct num_node *createList(struct num_node *head){ int a; struct num_node *p=NULL; scanf("%d",&a); while(a!=-1){ p=(struct num_node*)malloc(sizeof(struct num_node)); p->x=a; p->next=NULL; head=Insert_node(head,p); scanf("%d",&a); } return head; } //插入结点 struct num_node *Insert_node(struct num_node *head,struct num_node *p){ struct num_node *s=head; if(head==NULL){ head=p; s=head; } else{ while(s->next!=NULL){ s=s->next; } s->next=p; s=p; } return head; } //删除指定结点 struct num_node *Delete_node(struct num_node *head,int m){ struct num_node *p=head,*q=head; while(p!=NULL){ if(head->x==m){ head=head->next; q=head; free(p); p=q; } else if(p->x==m){ q->next=p->next; free(p); p=q->next; } else{ q=p; p=p->next; } } return head; } //打印链表 void print(struct num_node *head){ if(head==NULL){ printf("链表已空!\n"); return; } struct num_node *q=head; while(q!=NULL){ printf("%d ",q->x); q=q->next; } } //释放结点 void free_node(struct num_node *head){ struct num_node *q=head,*temp=NULL; while(q!=NULL){ temp=q; q=q->next; free(temp); } }

输入样例:3 2 3 4 3 6 7 8 3 11 3 -1
3

输出结果:2 4 6 7 8 11

http://www.jsqmd.com/news/557559/

相关文章:

  • MySQL安全加固:3种实战方法限制IP访问(附详细命令)
  • OpenClaw+百川2-13B构建自动化测试助手:从日志分析到Bug报告生成
  • 基于深度确定性策略梯度算法(DDPG)强化学习的滑模控制(SMC)自适应调参优化算法Simulink仿真
  • 跨平台同步:Windows主机与Mac笔记本共用OpenClaw+nanobot配置
  • 手把手教程:用Xinference快速部署GTE-base-zh,零基础玩转文本相似度计算
  • Z-Image 菜鸟一键尝鲜包 低配置专用版 无需复杂环境 解压即用快速体验 AI 绘画 本地部署
  • Hermes-4-14B:混合推理范式革新,开源大模型的技术突破与实践指南
  • 【LangGraph从小白到精通手把手实战教程】 007、Edge边与路由:条件路由、动态路由与固定流转
  • 2026年城市规划论文降AI工具推荐:规划分析和现状描述部分
  • nanobot镜像+OpenClaw省钱方案:替代高价API的3个技巧
  • ZLUDA终极指南:打破NVIDIA垄断,让AMD显卡畅享CUDA生态
  • ADS1219 24位高精度ADC驱动开发与工业级应用实践
  • 2026正规辐射五恒系统优质公司推荐:AI五恒系统/五恒系统公司/光伏/全空气五恒系统/内墙保温/商用五恒系统/选择指南 - 优质品牌商家
  • 避坑指南!刚玩OpenClaw的朋友快看过来,躲开这5个大坑,每个月能省下好几百块
  • 2026知网AIGC检测3.0升级,降AI率工具还能有效降论文ai率吗?实测给你答案
  • QuickRecorder进阶指南:从场景适配到专业录制的全流程优化
  • 5分钟免费接入海尔智能家居:HomeAssistant完整解决方案终极指南
  • 打破显卡技术壁垒:OptiScaler让全平台AI超分辨率自由切换
  • 论文AIGC率多少算合格?2026各高校最新降AI率标准深度解读
  • 好用的清洁拖把,给你推荐!
  • OpenClaw儿童模式:ollama-QwQ-32B限制敏感操作与内容过滤
  • DeepFace模型预加载优化指南:从延迟痛点到秒级启动的全方案解析
  • 深度解析:Live2D Widget WebSocket实时交互架构实践
  • 【顶级EI复现】基于光伏功率概率预测的新能源配电系统节点电压不确定性量化方法研究(Matlab代码实现)
  • 2026成都商务净水系统优质服务商推荐榜:格力商城空调、格力商用空调总代理、格力家用空调总代理、格力空调专卖店选择指南 - 优质品牌商家
  • WorkshopDL终极指南:轻松下载Steam创意工坊模组,无需Steam客户端!
  • 第三章 运算符
  • 3分钟从想法到3D模型:Hunyuan3D-2如何帮你实现创作自由
  • 大学生黑客松完全指南:从零开始到获奖的完整路径
  • 正规不锈钢全屋定制橱柜品牌推荐榜:本地不锈钢定制家居、浴室不锈钢定制家居、衣柜不锈钢全屋定制、304不锈钢定制家居选择指南 - 优质品牌商家