news 2026/6/9 1:11:43

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
删除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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 0:47:44

TensorFlow在精准营销中的个性化推荐实践

TensorFlow在精准营销中的个性化推荐实践 在电商平台的首页&#xff0c;一个新用户刚完成注册&#xff0c;还没有任何点击或购买行为。然而几秒钟后&#xff0c;系统已经为他推荐了一组高度相关的产品——从他可能感兴趣的数码配件&#xff0c;到契合其地域偏好的本地服务。这种…

作者头像 李华
网站建设 2026/6/9 0:37:36

使用TensorFlow.js在浏览器端运行AI模型

使用TensorFlow.js在浏览器端运行AI模型 如今&#xff0c;打开网页就能“看懂”图片、实时识别人脸动作、甚至用语音与页面互动——这些曾经依赖云端服务器的智能功能&#xff0c;正越来越多地直接在用户浏览器中完成。这背后的关键推手之一&#xff0c;正是 TensorFlow.js。 它…

作者头像 李华
网站建设 2026/6/9 1:34:44

近期“懒人热红酒”刷屏,蜜雪冰城却躺赚?

近日&#xff0c;一条关于“懒人版热红酒”的创意在微博、抖音等社交平台迅速走红。网友只需购买蜜雪冰城的棒打鲜橙热饮&#xff0c;将其倒入红酒中即可调制出一杯温暖的热红酒&#xff0c;操作简便、口感独特&#xff0c;相关话题浏览量已突破300万。这股“DIY”热潮正好契合…

作者头像 李华
网站建设 2026/5/22 7:25:23

好写作AI本科毕设急救包:如何助力短期高效完稿?

距离答辩只剩四周&#xff0c;你的实验数据刚整理完&#xff0c;文献还没读完&#xff0c;而Word文档里只有孤零零的标题。这并非个例&#xff0c;而是许多本科毕业生在最后一个春天的真实写照。本科毕业设计是对学生综合能力的终极考核&#xff0c;但时间规划不足、写作经验缺…

作者头像 李华
网站建设 2026/6/8 17:45:47

人机协同写作新范式:学者如何主导AI工具的应用?

当AI写作工具从科幻走入现实&#xff0c;一个关键问题摆在每位学者面前&#xff1a;是我们驾驭工具&#xff0c;还是被工具定义&#xff1f;这场人机协作的主动权&#xff0c;应当掌握在谁的手中&#xff1f;人工智能正在重塑学术生产的流程&#xff0c;但工具的先进性不等于应…

作者头像 李华