C语言链表:删除有序链表中大于mink小于maxk的元素
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(struct Node)
struct Node
{
int data;
struct Node *next;
};
typedef struct Node *PtrToNode;
typedef PtrToNode List;//表
typedef PtrToNode Position;//位置 List CreateTable(int n,Position head);//建立顺序表
void PrintTable(Position head);//遍历链表
Position Delete(Position head, int mink, int maxk);//删除表中所有值大于mink且小于maxk的元素 List CreateTable(int n,Position head)
{
int i;
Position p1, p2, p3;
for (i = ; i<n; i++)
{
p1 = (Position)malloc(LEN);
printf("请输入元素:");
scanf("%d", &p1->data);
p1->next = NULL;
p2 = head;
p3 = head->next;
while (p3 != NULL&&p1->data>p3->data)
{
p3 = p3->next;
p2 = p2->next;
}
p1->next = p3;
p2->next = p1;
}
return(head);
} void PrintTable(Position head)
{
Position p;
p = head->next;
while (p->next != NULL)
{
printf("%d ", p->data);
p = p->next;
}
printf("%d\n", p->data);
} Position Delete(Position head, int mink, int maxk)
{
Position tail;
tail = head;
while (head->next)
{
if (head->next->data > mink && head->next->data < maxk)
{
head->next = head->next->next;
}
else
head = head->next;
}
return tail; } int main()
{
int n;
int mink, maxk;
Position head;
head = (Position)malloc(LEN);
head->next = NULL;
printf("请输入链表长度:");
scanf("%d", &n);
CreateTable(n,head);
PrintTable(head);
printf("请输入删除范围:\n");
printf("下限:\n");
scanf("%d", &mink);
printf("上限:\n");
scanf("%d", &maxk);
head = Delete(head, mink, maxk);
PrintTable(head); }
C语言链表:删除有序链表中大于mink小于maxk的元素的更多相关文章
- 算法练习之合并两个有序链表, 删除排序数组中的重复项,移除元素,实现strStr(),搜索插入位置,无重复字符的最长子串
最近在学习java,但是对于数据操作那部分还是不熟悉 因此决定找几个简单的算法写,用php和java分别实现 1.合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两 ...
- 剑指offer 56.删除有序链表中的重复结点
56. 删除有序链表中的重复结点 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3-> ...
- Leetcode26——删除有序数组中的重复项(双指针法)
Leetcode26--删除有序数组中的重复项(双指针法) 1. 题目简述 给你一个升序排列的数组 nums ,请你原地 删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度.元素的相对 ...
- 【python】Leetcode每日一题-删除有序数组中的重复项
[python]Leetcode每日一题-删除有序数组中的重复项 [题目描述] 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现一次 ,返回删除后数组的新长度. 不要 ...
- [LeetCode每日一题]80. 删除有序数组中的重复项 II
[LeetCode每日一题]80. 删除有序数组中的重复项 II 问题 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度. 不要使用额外 ...
- 【python】Leetcode每日一题-删除有序数组中的重复项2
[python]Leetcode每日一题-删除有序数组中的重复项2 [题目描述] 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度. 不 ...
- 删除有序数组中的重复项II
题目描述 给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素最多出现两次,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组 并在使用O(1)额外空间的条件下 ...
- 【LeetCode】80. 删除有序数组中的重复项 II
80. 删除有序数组中的重复项 II 知识点:数组:排序:双指针: 题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度. 不要使 ...
- 【LeetCode】26. 删除有序数组中的重复项
26. 删除有序数组中的重复项 知识点:数组:排序:双指针: 题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的 ...
随机推荐
- ibatis项目应用
创建数据库表: create table u_student( student_id number 16, student_name varchar2(108), student_code numbe ...
- java 形式参数和实际参数的区别
1.形参不能离开方法.形参只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见.而实参可以再程序的任何地方都使用.
- 本地计算机上的 postgresql 服务启动后停止解决方法
在启动 postgresql 服务是遇到这种情况: 解决方法: 打开计算机管理====>查看应用程序日志信息,可以看出,由于日志配置错误的问题. 找到 postgresql.conf 文件,做如 ...
- js的中文在网页中显示为乱码
最近的毕业设计写道局部检查用户命是否为空和是否符合规范时 发现页面回显的中文为乱码 then 找到一个和我遇到同样问题的人呐 他说“最近在写一个商城网页的时候遇到了一个问题,那就是javascrip ...
- python 两个 list 获取交集,并集,差集的函数
1. 获取两个 list 的交集 a = [1, 2, 3, 4] b = [1, 2, 5] print(list(set(a).intersection(set(b)))) 2. 获取两个 lis ...
- Assignments 1
跑了一下之前写的UiPath Assignments脚本,没什么问题,发上来供大家参考. 先看结果: github:https://github.com/WendyZheng1022/RPA 有时间我 ...
- 3DsMax 自动化操作(maxScript)
这是我编写的一部分maxScript 脚本,专注于3DsMax 快速建模,程序化地为我们完成一些繁琐的工作. 可以极大提高公司开发的效率! 2019年04月09日 :上传 今年新开发的插件,还有很多, ...
- flask基础---第三篇
flask中request的一些方法 首先from flask import request 1.request.path 2.request.host 3.request.host_url from ...
- 字符编码 ASCII、Unicode和UTF-8的关系
摘抄自廖雪峰 教程 字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机 ...
- 操作日志的设计小结by大熊
一.首先由同事的操作日志说起 同事做了一个这样的操作日志,他定义系统所有发的json加入这两个字段,module和msg,然后在service里面用注解@Log拦截,即可记录对应的操作日志. { mo ...