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

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

7. 奇数值结点链表:输入若干个正整数(输入-1为结束标志)建立一个单向链表,头指针为L,将链表L中奇数值的结点重新组成一个新的链表NEW,并输出新建链表的信息。试编写相应程序。

第一种方案:

#include<stdio.h> #include<stdlib.h> struct num_node { int x; struct num_node *next; }; int main() { int a; struct num_node *L = NULL, *NEW = NULL, *p = NULL, *s = NULL, *q = NULL; // 输入链表 scanf("%d", &a); while(a != -1) { p = (struct num_node*)malloc(sizeof(struct num_node)); p->x = a; p->next = NULL; if(L == NULL) { L = p; s = L; } else { s->next = p; s = p; } scanf("%d", &a); } // 从原链表中提取奇数节点,组成新链表 p = L; q = NULL; // q 用于追踪新链表的尾节点 while(p != NULL) { if(p->x % 2 != 0) { // 如果是奇数 s = (struct num_node*)malloc(sizeof(struct num_node)); s->x = p->x; s->next = NULL; if(NEW == NULL) { NEW = s; q = NEW; } else { q->next = s; q = s; } } p = p->next; // 关键:移动原链表指针 } // 输出新链表(只含奇数) q = NEW; while(q != NULL) { printf("%d ", q->x); q = q->next; } printf("\n"); // 释放内存(可选,但好习惯) // 释放原链表 p = L; while(p != NULL) { struct num_node* temp = p; p = p->next; free(temp); } // 释放新链表 q = NEW; while(q != NULL) { struct num_node* temp = q; q = q->next; free(temp); } return 0; }

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

输出结果:1 3 5 7 9

第二种方案:

#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 *Select_node(struct num_node *head); void print(struct num_node *head); void free_node(struct num_node *head); int main() { struct num_node *L=createList(NULL),*NEW=Select_node(L); print(NEW); free_node(L); free_node(NEW); 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 *Select_node(struct num_node *head){ struct num_node *NEW=NULL,*p=head,*s=NULL,*q=NULL; while(p!=NULL){ if(p->x%2!=0){ s=(struct num_node *)malloc(sizeof(struct num_node)); s->x=p->x; s->next=NULL; if(NEW==NULL){ NEW=s; q=NEW; } else{ q->next=s; q=s; } } p=p->next; } return NEW; } //打印链表 void print(struct num_node *head){ 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); } }

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

输出结果:1 3 5 7 9 11 13

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

相关文章:

  • 百川2-13B模型微调实战:提升OpenClaw中文邮件处理准确率
  • 3分钟打造专属中文影音库:Kodi中文插件库完全指南
  • 2026成都专业书画装裱机构推荐榜:附近装饰画实体店地址、书画定制公司哪家好、成都书画定制一条街、成都书画定制公司选择指南 - 优质品牌商家
  • 解密PPO算法:从核心原理到实战应用
  • C语言程序设计第四版(何钦铭、颜晖)第十一章指针进阶之删除结点
  • 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成都商务净水系统优质服务商推荐榜:格力商城空调、格力商用空调总代理、格力家用空调总代理、格力空调专卖店选择指南 - 优质品牌商家