核心函数如下:

void LinkList_clear(LinkList &L,int mink,int maxk)
{node *q,*t,*p,*r;p = L->next;while (p!=NULL&& p->date <= mink){//查找第一个值大于mink的结点t = p;//t是连接的桥梁指针p = p->next;}if (p!=NULL){while (p && p->date < maxk){        // 当数小于maxk的时候一直往下找p = p->next;}q = t->next;//把之前的位置存起来t->next = p;//改变指针,使其跳跃到范围之外while (q != p){// 释放节点空间r = q->next;delete q;q = r;}}
}

完整代码如下:

#include<stdio.h>
#include<stdlib.h>
#define N 5
typedef int SLDataType;
typedef struct node
{SLDataType date;struct node *next;
}node,*LinkList;
SLDataType LinkList_Init(LinkList &L)
{L=(LinkList)malloc(sizeof(node));if(L==NULL)exit(-1);L->next=NULL;return 1;
}
void LinkList_create(LinkList &L,int n)
{int i;node *p,*q;q=L;printf("请输入递增元素:");for(i=0;i<n;i++){p=(LinkList)malloc(sizeof(node));scanf("%d",&p->date);p->next=NULL;q->next=p;q=p;}
}
void LinkList_print(LinkList &L)
{node *p;p=L->next;printf("单链表的元素为:");while(p){printf("%d ",p->date);p=p->next;}printf("\n");
}
void LinkList_clear(LinkList &L,int mink,int maxk)
{node *q,*t,*p,*r;p = L->next;while (p!=NULL&& p->date <= mink){//查找第一个值大于mink的结点t = p;p = p->next;}if (p!=NULL){while (p && p->date < maxk){       // 当数小于maxk的时候一直往下找p = p->next;}q = t->next;t->next = p;//改变指针while (q != p){// 释放节点空间r = q->next;delete q;q = r;}}
}
int main()
{LinkList L;int n=N;int mink,maxk;LinkList_Init(L);//创建单链表LinkList_create(L,n);//输入单链表的数LinkList_print(L);//打印单链表的元素printf("需要删除数的范围:");scanf("%d%d",&mink,&maxk);getchar();LinkList_clear(L,mink,maxk);//删除链表中所有大于mink且小于maxk的元素LinkList_print(L);//验证删除后的结果return 0;
}

运行结果如下:

已知带头结点单链表中各结点的元素值为整形且递增有序,设计算法删除链表中所有大于mink且小于maxk的元素,并释放被删结点的空间。相关推荐

  1. 已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值x为的结点插入到表L中,使L仍然有序。

    创建链表,main函数中通过while循环找出该插入的位置,插入.应注意L头节点位置的变化,利用一个ptr来记录L的头节点. /*已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值 ...

  2. 3 x 10的python表达式_已知 x = [3, 5, 7],那么表达式 x[10:]的值为_学小易找答案

    [判断题]Python 3.x完全兼容Python 2.x. [填空题]已知 x = 3,那么执行语句 x += 6 之后,x的值为 [判断题]在Python 3.x中可以使用中文作为变量名. [判断 ...

  3. 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。//现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等

    //如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048. //现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等 ...

  4. C语言练习题:如果已知英尺长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)*0.3048。现在对应英尺制长度和英寸是多少呢?别忘了1英尺等于12英寸

    如果已知英尺长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)*0.3048.现在对应英尺制长度和英寸是多少呢?别忘了1英尺等于12英寸 #include<stdi ...

  5. 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸

    如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048.现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸 ...

  6. 常考数据结构与算法:删除链表的倒数第n个节点

    题目描述 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 例如, 给出的链表为:1->2->3->4->5, n= 2.删除了链表的倒数第n个节点之后,链表变为1-& ...

  7. java byte 正数最大_关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)...

    先看一段推理 +124:0111 1100 -124:1000 0100 +125:0111 1101 -125:1000 0011 +126:0111 1110 -126:1000 0010 +12 ...

  8. 算法----删除链表中的节点(Java)

    题目: 请编写一个函数,用于 删除单链表中某个特定节点 .在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 . 题目数据保证需要删除的节点 不是末尾节点 . 示例 ...

  9. 厘米换算英尺英寸 (15 分)如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是?

    //这个题主要是只要满12inch就转换为1个foot,只要明白这点就简单了.这个题如果直接舍入可能不过,也就是直接强制类型转化不行. #include <stdio.h> int mai ...

最新文章

  1. 最短路径-Dijkstra算法与Floyd算法
  2. 4万字长文ClickHouse应用实战-物化视图在微信的实践
  3. 让对方ping不通你的主机
  4. 登录业务介绍(单点登录)
  5. go python java_一文助你搞懂参数传递原理解析(java、go、python、c++)
  6. 系统架构师学习笔记-论文摘要部分的写法
  7. QTP中VBS脚本下FSO、WSH的应用(二)
  8. 158 行 Python 代码,复现 DeepMind 递归神经网络 DRAW!
  9. 苹果收购英特尔手机芯片业务;西门子将在华建立 5G 研发中心;React Native 0.60.4 发布 | 极客头条...
  10. 默认conf指向位置
  11. Excel怎么对比两个表格数据
  12. dbv连oracle,oracle工具:DBV的用法
  13. 昨天买的电动车今天上牌了
  14. 五、构建deb软件安装包
  15. Java之png图片工具类
  16. msrcr(Multi-Scale Retinex with Color Restoration) 带色彩恢复的多尺度视网膜增强算法 整理
  17. 【Web_接口爬虫_Python3_58同城_requestosetreeproxies】58同城,商铺出租,爬取标题、内容、链接地址,保存文本_20200401
  18. 在小米实习到SP+转正
  19. 【安卓学习之常见问题】 Google Play问题-Android 4.4.4平板电脑不能安装 -- (Your device isn‘t compatible with this version)
  20. 知道创宇区块链安全实验室|二月安全事件总结与回顾

热门文章

  1. 重磅!中国商业联合会专家委员会商贸物流与供应链智库成立在即
  2. Netgear WNDR3800 用 LAN口 替换 WAN口
  3. excle报盘之导入报盘
  4. 360浏览器兼容模式下站点显示不正常,极速模式正常
  5. 李彦宏一声「萝卜快跑」,中国首个无人车出行App就位!网友:这才是科技公司该干的事儿...
  6. 【解决笔记本黑屏问题】
  7. 远程连接服务器突然失败
  8. (超)体素云连通性分割算法VCCS
  9. css3实现简单的文字动画效果
  10. PRA10.3平台API接口调用