将链表变成有序链表并定义mink和maxk,删除大于mink和小于maxk的数据,mink和maxk可不与链表数据相同。


//代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>#define MAXSIZE 10
#define OK 1
#define ERROR 0
#define T 1
#define F -1typedef int Status;typedef struct Dlist {int data;struct Dlist* next;
}Dlist, * Zdlist;//创建
Status Cj_List(Zdlist& L) {L = (Zdlist)malloc(sizeof(int));if (L) {L->next = NULL;printf("创建成功!\n");return OK;}printf("创建失败!\a\n");return ERROR;
}//插入
Status Cr_List(Zdlist& L, int i, int e) {Zdlist p, s;p = L;int j = 0;                          //判断是否有头结点,无头节点则创建失败。while (p && (j < i - 1)) {p = p->next;++j;}if (!p || j > i - 1) {printf("插入失败!\a\n");return ERROR;}s = (Zdlist)malloc(sizeof(int));//插入时先新建头结点s->next = NULL;                 //定义p=L用p代替L进行指针遍历,防止丢失头结点s->data = e;s->next = p->next;p->next = s;printf("插入成功!\n");return OK;}//输出
Status Sc_List(Zdlist L) {Zdlist p = L;int sum = 0;if (!p->next) {printf("链表为空!\a\n");return ERROR;}printf("全部学生数据:\n");while (p->next != NULL) {p = p->next;sum++;      //输出总人数printf("%3d", p->data);}return OK;
}//冒泡排序
void Px_List(Zdlist &L,int n) {Zdlist p = L->next;int temp;for (int i = 0; i < n; i++) {for (int j = 0; j < (n-1) - i;j++) {if ((p->data) > (p->next->data)) {temp = p->data;p->data = p->next->data;p->next->data = temp;p = p->next;}else {p = p->next;}}p = L->next;}
}//删除大于mink切小于maxk的数据
void Sia_List(Zdlist &L) {Zdlist p = L;int mink, maxk;printf("输入范围:mink maxk \n");scanf("%d %d", &mink, &maxk);while (p->next != NULL) {if (p->next->data > mink && p->next->data < maxk) {p->next = p->next->next;}else {p = p->next;}}
}//主函数
int main() {Zdlist L;int e;int choose;int i, n = 10;int sum = n;Cj_List(L);while (n > 0) {printf("位置 数据:\n");scanf("%d %d", &i,&e);Cr_List(L, i, e);n--;}Sc_List(L);printf("\n");Px_List(L,sum);Sc_List(L);printf("\n");Sia_List(L);Sc_List(L);printf("\n");return 0;
}

C语言:删除有序链表大于mink小于maxk的数相关推荐

  1. 牛客题霸 [删除有序链表中重复的元素] C++题解/答案

    牛客题霸 [删除有序链表中重复的元素] C++题解/答案 题目描述 删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次 例如: 给出的链表为1\to1\to21→1→2 ...

  2. 删除有序链表中的重复结点

    一,问题描述 请自己构造一个简单的有序单链表,然后实现删除链表中的重复结点.比如: 二,问题分析 首先要实现一个单链表,因此需要定义一个节点类Node.其次,实现向链表中添加结点的方法(使用尾插法)a ...

  3. BM15 删除有序链表中重复的元素-I

    描述 删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次 例如: 给出的链表为1→1→2,返回1→2. 给出的链表为 1→1→2→3→3,返回 1→2→3. 数据范围: ...

  4. BM16 删除有序链表中重复的元素-II

    描述 给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素. 例如: 给出的链表为1→2→3→3→4→4→5, 返回1→2→5. 给出的链表为1→1→1→2→3, 返 ...

  5. 牛客题霸 NC25 删除有序链表中重复的元素-I

    https://www.nowcoder.com/practice/c087914fae584da886a0091e877f2c79 解决方案 Go 版本一 func deleteDuplicates ...

  6. 牛客题霸 NC24 删除有序链表中重复的元素-II

    https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024 解决方案 Go func deleteDuplicates(hea ...

  7. leetcode83,删除有序链表中的重复元素

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  8. c语言找出链表中倒数第k的数,查找链表中倒数第k个结点

    题目:输入一个单向链表,输出该链表中倒数第 k 个结点.链表的倒数第 0 个结点为链表的尾指针. 分析:为了得到倒数第 k 个结点,很自然的想法是先走到链表的尾端,再从尾端回溯 k 步.可是输入的是单 ...

  9. 删除单链表中的重复节点(c语言版本)

    这是一道经典的面试题,下面是我的研究和举一反三,特整理如下: 分为三种情形: (1)删除有序链表的重复节点,重复节点一个都不留 (2)删除有序链表的重复节点,重复节点只留一个 (3)删除无序链表的重复 ...

最新文章

  1. Unity3D手机斗地主游戏开发实战(03)_地主牌显示和出牌逻辑
  2. oracle之控制文件恢复
  3. 超详细SQLMap使用攻略及技巧分享
  4. 色彩的狂欢:看嘎玛·多吉次仁的画展
  5. 一张图说明我们为什么要关注 HTML5
  6. 二级Access数据库大纲知识要点
  7. vcpkg工具+vs2019
  8. 怎么选择boost升压电路的电感?只要三个公式
  9. java poi合并单元格后内容无法显示
  10. excel计算机考试,Excel计算机考试操作题全解.doc
  11. 模糊控制 进化算法 PID参数整定
  12. html的富文本有什么用,html中怎样使用富文本
  13. 速看四川省企业技术中心拟认定名单已发布,共181家
  14. VMware克隆虚拟机后修改UUID、MAC地址、IP和主机名
  15. Photoshop CS6 Extended 特别版特点介绍
  16. 联想服务器开机滴一下不显示,电脑开机没有滴的一声显示器不亮怎么办 电脑开机故障解决方法【图文】...
  17. 我的世界服务器修改高度放水,我的世界:水不够用?学会这4种方法,教你一桶水造无限水...
  18. 三菱FX系列PLC模拟量输入AD模块的使用方法和相关编程设置详解
  19. 一般人不清楚的JavaScript概念
  20. 小蚁摄像机存储到计算机,小蚁摄像机电脑客户端

热门文章

  1. 各类IP地址的划分范围详解(看完不懂算我输)
  2. 迁移AndroidX,你该搬家了
  3. redis -- key
  4. GIS讲堂第四课-大量POI点的展示
  5. 未转变者空投指令服务器,未转变者指令 有没有 给个答案
  6. 网络安全--边界安全(1)
  7. Django 进入admin服务器自动关闭问题
  8. 基于蓝牙智能家庭影音控制系统---粤嵌GEC6818嵌入式系统实训
  9. opencv之dilate()函数
  10. WGS完整流程介绍(原始数据质控、数据预处理、变异检测、数据注释)