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

删除m节点和n节点之间的节点

​ #include <stdio.h> #include <stdlib.h> #define N 8 struct student { int num; /* 学号 */ float score; /* 成绩 */ struct student *link; /*指向下一个节点的指针*/ }; struct student *creat( ) { struct student *head,*p[N],*q; int n[N]={0,1,2,3,4,5,6,7}; float f[N]={ 478.3, 482.5, 487.1, 489.2, 472.8, 500, 502.5, 510.9 }; int i; head=NULL; for(i=0;i<8;i++) { /* 申请新的节点 */ p[i]=(struct student *)malloc(sizeof(struct student)); p[i]->num=n[i]; p[i]->score=f[i]; if (head==NULL) /*刚才新建的是不是第一个节点*/ head=p[i]; /*是,则令该节点为头结点,head为头指针*/ else q->link=p[i]; /*否,则将该节点挂到链表尾部*/ q=p[i]; /* q总是指向已建链表的最后一个结点*/ } if (head!=NULL) q->link=NULL; /*如果链表不为空,则设立尾结点标志*/ return(head); } void print(struct student *phead) { struct student *p; p=phead; while (p!=NULL) { printf("%d,%5.1f\n",p->num ,p->score ); p=p->link ; /*指向下一个节点*/ } } struct student *del(struct student *phead,int n,int m) { struct student *p, *q, *r; p=phead; if (phead==NULL) /* 是不是一个空链表? */ return (phead); if(p->num == m) /*要删除的是头节点*/ { q=p; /* q指向当前节点,p指向下一个节点 */ p=p->link; free(q); /* 释放q节点空间 */ if(p==NULL) return NULL; /* 链表只有一个节点 */ while(p->num <= n) /* 由n确定待删除节点 */ { q=p; /* q指向当前节点,p指向下一个节点 */ p=p->link; free(q); /* 释放q节点空间 */ if(p==NULL) return NULL; /* 删除掉的是尾节点 */ } phead=p; /* p是头节点 */ } else { while(p->num != m) { q=p; // q指向当前节点 p=p->link; // p指向下一个节点 if(p==NULL) return phead; /* 没有要删除的节点 */ } r=q; /* r指向m节点之前的最后一个节点 */ q=p; /* q指向m节点 */ while(p->num <= n) /* 由n确定待删除节点 */ { p=p->link; /* p指向下一个节点 */ free(q); /* 释放q节点空间 */ q=p; /* q指向p节点 */ if(p==NULL) /* 是空节点 */ { r->link=p;return phead;} /* r节点是最后一个节点 */ } r->link = p; /* 把p节点插入链表 */ } return(phead); /* 返回头结点 */ } int main() { int m,n; struct student *head; m=6;n=7; head=creat( ); /* 生成链表 */ printf("before delete:\n"); print(head); /* 输出链表 */ head=del(head,n,m); /* 删除m和n之间节点 */ printf("after delete:\n"); print(head); /* 输出链表 */ return 0; } ​

运行结果:

before delete:

0, 478.3

1, 482.5

2, 487.1

3, 489.2

4, 472.8

5, 500.0

6, 502.5

7, 510.9

after delete:

0, 478.3

1, 482.5

2, 487.1

3, 489.2

4, 472.8

5, 500.0

http://www.zskr.cn/news/163826.html

相关文章:

  • 使用TensorFlow进行客户流失预测建模
  • 如何用TensorFlow实现语音合成(TTS)?
  • 深圳婚纱摄影推荐,服务深度解析:都格影像的专业体系与核心竞争力/深圳婚纱摄影工作室/深圳婚纱照 - charlieruizvin
  • 收藏!AI大模型全景解读:发展历程、技术本质与应用前景(小白程序员入门必备)
  • 2025孩子网瘾叛逆管教学校TOP5权威推荐:专业机构助力迷途少年回归正途 - 工业推荐榜
  • 2025-2026昌平区离婚财产律所公正测评:从专业能力到用户口碑,全方位推荐高性价比法律问题咨询机构 - 苏木2025
  • 别让文献综述成 “论文拖油瓶”:paperzz 文献综述功能,3 步织出 “学术逻辑网”
  • 揭秘Open-AutoGLM核心技术:如何用AI实现全自动质谱数据分析
  • 2025年金属探测机靠谱厂家推荐:金属探测机品牌商怎么选? - 工业品牌热点
  • TensorFlow在社交媒体舆情监控中的角色
  • 北京企业贷款推荐哪家?靠谱的企业贷款服务公司排行榜 - myqiye
  • 使用TensorFlow进行活体检测技术研究
  • 还在用传统MLOps?Open-AutoGLM 云带来的6大颠覆性变革
  • 永磁同步电机振动噪音的仿真实战笔记
  • 【Open-AutoGLM底层原理深度揭秘】:掌握大模型自动推理的5大核心技术
  • 软件测试环境搭建与测试流程
  • 2025年眼部护理仪供货厂家权威推荐榜单:眼部按摩仪/热灸护眼仪/智能明目仪源头厂家精选 - 品牌推荐官
  • 消防泵怎么选不踩雷?2025年立式消防泵行业5大领先品牌深度调研 - 品牌推荐大师1
  • 好写作AI:研究生文献综述难题破解——AI如何实现高效信息整合?
  • ConTextTab一个语义感知的表格情境学习模型
  • 2025-2026北京市昌平区遗产继承律师事务所测评排行榜:权威解析靠谱机构 专业律师在线咨询提供全面法律帮助及胜诉率保障解决方案 - 苏木2025
  • 城市仿真软件:MATSim_(11).城市规划与政策评估
  • 国内直连失败?,Open-AutoGLM下载加速秘籍大公开
  • 运维转岗网络安全?零基础从入门到精通全攻略,收藏这一篇就够了
  • 计算机毕设java脱口秀表演网站 基于Java的脱口秀表演信息管理平台设计与实现 Java语言构建的脱口秀表演管理系统开发
  • 基于TensorFlow的OCR系统开发实战
  • 2025年塑料拖链优质厂家排名:个性化定制与正规服务企业全解析 - myqiye
  • 幽冥大陆(七十三) 宇泛(Uni-Ubi) API闸机门禁对接—东方仙盟练气期
  • 你还没有自己的靶场吗?来,自己建一个吧
  • 2025年华东地区苏作红木优质生产商、苏作红木服务商家年度排行榜 - 工业设备