数据结构:删除顺序表中小于min和大于max的数(不需要从大到小排列依然可以)
1.题目要求:
设计一个算法,删除递增有序链表中值小于min和大于max的所有元素
2.题目分析
依次找到对应元素,而后进行删除.
int listDelete(SqList& L, int min, int max) //删除顺序表中小于min,大于max的元素
{int n =L.length;while (n) {for (int i = 1; i <= L.length; i++) {if (L.elems[i-1]<min || L.elems[i-1]>max) {listDelete1(L, i);break;} }n--;}return true;}
该方法的主要实现函数,可以进行参考(欢迎交流意见)!!!
代码实现::
#include<stdlib.h>
#include <iostream>#define SUCCESS 1
#define FAILURE 0
#define OVERFLOW 1
#define MAX_SIZE 100using namespace std;typedef struct {int* elems;int length;int size;
}SqList;void swap(int* num1, int* num2) {int temp = *num1;*num1 = *num2;*num2 = temp;
}void SelectSort1(int arr[], int len) { //选择排序for (int i = 0; i < len - 1; i++) {int max = 0;for (int j = 1; j < len - i; j++) {if (arr[j] > arr[max]) {max = j;}}if (max != (len - i - 1)) {swap(&arr[max], &arr[len - i - 1]);}}
}bool InitList(SqList& L) //顺序表的初始化
{L.elems = new int[MAX_SIZE];if (!L.elems) return false;L.length = 0;L.size = MAX_SIZE;return true;
}bool listAppend(SqList& L, int e) //顺序表的增加
{if (L.length >= L.size) return false;L.elems[L.length] = e;L.length++;return true;
}bool listDelete1(SqList& L, int i) //删除第i位置的元素
{if (i < 1 || i > L.length) return false;if (i == L.length) {L.length--;return true;}for (int j = i-1; j < L.length - 1; j++) {L.elems[j] = L.elems[j+1];}L.length--;cout << "删除成功" << endl;return true;
}int listDelete(SqList& L, int min, int max) //删除顺序表中小于min,大于max的元素
{int n =L.length;while (n) {for (int i = 1; i <= L.length; i++) {if (L.elems[i-1]<min || L.elems[i-1]>max) {listDelete1(L, i);break;} }n--;}return true;}void listPrint(SqList& L) { //打印输出cout << "顺序表存储空间size:" << L.size << ",已保存元素的个数length:" << L.length << endl;for (int i = 0; i < L.length; i++) {cout << L.elems[i] << " ";}
}int main(void) {int count, e, min, max;SqList L;InitList(L);cout << "初始化成功" << endl;cout << "请输入要添加的元素个数:";std::cin >> count;for (int i = 0; i < count; i++) {cout << "\n请输入要添加的元素e:";std::cin >> e;if (listAppend(L, e)) {cout << "添加成功!" << endl;}else {cout << "添加失败!" << endl;}}listPrint(L);cout << "删除元素" << endl;cout << "请输入最小元素min和最大元素max:" << endl;cin >> min >> max;listDelete(L, min, max);listPrint(L);listPrint(L);system("pause");return 0;
}
运营结果:
数据结构:删除顺序表中小于min和大于max的数(不需要从大到小排列依然可以)相关推荐
- 删除顺序表中下标i~j的所有元素
删除顺序表中下标i~j的所有元素(包括i.j),假定i.j合法 void delete(SqList &L,int i,int j) {while(j < L.length-1){L.d ...
- 删除顺序表中重复元素,并按照原序输出
问题描述:从顺序表中删除重复的元素,并使得剩余元素间的相对次序保持不变. 解决思路: PS:将结果表归为一个新表,理解较为容易(接下来以旧表和新表相称) ①先定义新表的长度和迭代器(初始长度为1,迭代 ...
- 删除顺序表中指定范围的元素
题目:从顺序表中删除给定区间s~t之间的值,若给定区间不合理或顺序表为空,则显示错误信息并退出 分析:此题与上一题大同小异,只不过,循环体内部的判定条件有了变化,我们仍然可以采用上一题的思路进行编写: ...
- 删除顺序表中所有的的重复数据
顺序表的结果设计如下所示 顺序表的结构体设计和头节点的结构体设计如下链接: 顺序表的插入_神厨小福贵!的博客-CSDN博客按位置插入我们知道 顺序表的特点就是 无论在逻辑上还是地址上都是连续的先看顺序 ...
- 第3周实践项目4 -顺序表的应用 删除顺序表中元素为x的值
/* copyright (t) 2017,烟台大学计算机学院 *All rights reserved. *文件名称:1.cpp *作者:邵雪源 *完成日期:2017年9月14日 *问题描述:删除元 ...
- 数据结构 在顺序表中头插及尾插的实现
头插 头插和尾插不同尾插只需要在顺序表最后插入一个数据容量不够扩容即可,而头插需要移动元素 ,所以我们必须明白是应该从后往前还是从前往后移动元素. //头插 从后向前移动(防止数据被覆盖) void ...
- 算法:删除顺序表中重复的元素
//删除数组中重复的元素 //思路:通过起始位置的元素,逐个和后面的元素进行比较,找到相同的元素后执行删除操作.没有发现执行第二次循环void purge(int a[], int len) {int ...
- 设计一个算法,删除顺序表中下标i~j(i<=j,包括i和j)的所有元素,假定i和j是合法的。
#include <iostream> using namespace std;void delElem(int arr[],int &length,int i,int j){in ...
- 顺序表中删除最小值元素
2019.6.19 数据结构2.2.3 综合应用题(1) 题目: 从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值,空出的位置由最后一个元素填补,若顺序表为空则显示出错信息并退出运行 ...
最新文章
- 聊天宝彻底凉了,遭罗永浩抛弃,团队就地解散
- 关于AES算法及JAVA中的实现
- node.js 没有转发_如何用Nodejs编写一个定时消息提醒应用?
- basic4android 开发教程翻译(六)使用B4A-Bridge连接你的设备
- js中的墙头草---this
- SharpReader的效率:支持meme聚合
- Windows下访问VirtualBox的mysql服务
- (ab)使用Java 8 FunctionalInterfaces作为本地方法
- connect ECONNREFUSED 151.101.0.133:443 | spawn xxx ENOENT
- python爬虫获取中国天气网天气数据 requests BeautifulSoup re
- matlab三角函数降次,三角函数降次公式及推导过程
- 超低静态电流LDO稳压器选择要点
- 安装moodle3.6
- 服务器托管双线技术方案
- 第六届”蓝帽杯“全国大学生网络安全技能大赛WriteUp
- 日期计算器输入天数计算日期_计算日期范围内的活动
- 关于linux python3.7版本 No module named ‘_ssl‘报错
- kali为一加三(oneplus3)编译lineage15.1(安卓8.1)
- 微服务[学成在线] day13:使用FFmpeg进行格式转换以及m3u8文件生成、文件分块上传接口实现
- 根据网址搜索类似的网站
热门文章
- 计算机毕业设计之java+ssm基于微信小程序的游戏美术外包管理信息系统
- 前百度总裁陆奇:我给有梦想的年轻人9点建议
- Zemax操作--4(公差问题)
- jquery下载图片
- 安卓Palette原理分析
- 科大讯飞 前端 websocket 实时语音识别 代码_科大讯飞发布智能录音笔和智能TWS耳机,搭载核心AI转写能力...
- 哈尔滨自考计算机本科,黑龙江自考本科主考院校有哪些?黑龙江自考本科哪些专业可以报考?...
- uniapp微信小程序video全屏苹果xs
- 浙大计算机学院考纲,浙江大学考研大纲
- Minio报错 The access key ID you provided does not exist in our records