删除顺序表中所有的的重复数据
顺序表的结果设计如下所示
顺序表的结构体设计和头节点的结构体设计如下链接:
顺序表的插入_神厨小福贵!的博客-CSDN博客按位置插入我们知道 顺序表的特点就是 无论在逻辑上还是地址上都是连续的先看顺序表的结构体:#define MAXSIZE 10 //顺序表一般固定大小struct SeqList{ int data[MAXSIZE]; int capacity; //顺序表容量大小 int cursize; //顺序表中有效数据节点个数}SeqList , *PSeqList; //结构体指针和结构体别名再来看结构体的数据按位置插入:bool In...https://blog.csdn.net/qq_45829112/article/details/120863218
来看这个思路分析:
来看代码实现:
void Reamove_all(PSeqList plist, int val) //val就是要再顺序表中删除的数据
{assert(plist != NULL);int j = 0;for (int i = 1; i < plist->cursize; i++){if (plist->data[i] != val){j++;plist->data[j] = plist->data[i];}}plist->cursize = j + 1;
}
对于上述代码 如果顺序表首个数据是 12 呢 这样的话按照上面的的代码 第一个数据就会被跳过 导致最后结果达不到预期效果
对此 代码该怎么改呢?
方法一:
代码的话 改一下i j的初值就好:
void Reamove_all(PSeqList plist, int val) //val就是要再顺序表中删除的数据
{assert(plist != NULL);int j = -1;for (int i = 0; i < plist->cursize; i++){if (plist->data[i] != val){j++;plist->data[j] = plist->data[i];}}plist->cursize = j + 1;
}
方法二:
代码实现:
void Reamove_all(PSeqList plist, int val) //val就是要再顺序表中删除的数据
{assert(plist != NULL);int j = 0;for (int i = 0; i < plist->cursize; i++){if (plist->data[i] != val){plist->data[j] = plist->data[i];j++;}}plist->cursize = j;
}
“读书,买花,长大”
删除顺序表中所有的的重复数据相关推荐
- 数据结构:删除顺序表中小于min和大于max的数(不需要从大到小排列依然可以)
1.题目要求: 设计一个算法,删除递增有序链表中值小于min和大于max的所有元素 2.题目分析 依次找到对应元素,而后进行删除. int listDelete(SqList& L, int ...
- 删除顺序表中下标i~j的所有元素
删除顺序表中下标i~j的所有元素(包括i.j),假定i.j合法 void delete(SqList &L,int i,int j) {while(j < L.length-1){L.d ...
- ORCALE 当表中某个字段存在重复数据时,在它后面加序号
当表中某个字段存在重复数据时,在它后面加序号 (Partition By与row_number()的用法小记) 应用场景 orcale 数据库的一个表中的一个字段存在多个相同的值,如下图所示: 现在要 ...
- 删除顺序表中重复元素,并按照原序输出
问题描述:从顺序表中删除重复的元素,并使得剩余元素间的相对次序保持不变. 解决思路: PS:将结果表归为一个新表,理解较为容易(接下来以旧表和新表相称) ①先定义新表的长度和迭代器(初始长度为1,迭代 ...
- 删除顺序表中指定范围的元素
题目:从顺序表中删除给定区间s~t之间的值,若给定区间不合理或顺序表为空,则显示错误信息并退出 分析:此题与上一题大同小异,只不过,循环体内部的判定条件有了变化,我们仍然可以采用上一题的思路进行编写: ...
- 第3周实践项目4 -顺序表的应用 删除顺序表中元素为x的值
/* copyright (t) 2017,烟台大学计算机学院 *All rights reserved. *文件名称:1.cpp *作者:邵雪源 *完成日期:2017年9月14日 *问题描述:删除元 ...
- 算法:删除顺序表中重复的元素
//删除数组中重复的元素 //思路:通过起始位置的元素,逐个和后面的元素进行比较,找到相同的元素后执行删除操作.没有发现执行第二次循环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 ...
- 顺序表中删除指定值时间复杂度为O(n)空间复杂度为O(1)
问题描述:长度为n的线性表,删除表中所有值为x的元素,要求时间复杂度为O(n),空间复杂度为O(1). 算法设计思想:用k记录顺序表中不等于x的元素个数,即需要保存的元素个数,边扫描L边统计k,并将不 ...
最新文章
- 修改LDAP查询默认1000条限制
- 计划策略-50-没有最终装配的计划
- 清华大学梁宸计算机系,2015年广东高考高等学校自主招生录取考生名单公示(2)...
- oracle权限的分配
- 完整安卓项目开发过程和一些细节问题
- 调用feign接口时,如何往header中添加参数
- 一个基于protobuf的极简RPC
- Cesium:本地node运行cesium报错Must use import to load ES Module
- Directx11学习笔记【七】 游戏定时器的实现
- java p12证书,如何使用已安装的.p12 证书在 Mac OS X 上签名 jar?
- 【时序】时间序列领域的 GAN 模型综述论文笔记
- 《我的眼睛--图灵识别》第四章:基础:图片识别
- Entity Framework介绍
- Flask Jinja2模板引擎,headfirstjavapdf百度云
- 2023首届西安浐灞·保利戏剧节——以“觅”为主题 即将开启
- Linux环境下挂载外接硬盘
- 《操作系统》-生产者消费者问题
- 音视频开发系列1:音视频开发基本概念
- SCORM学习交互开发
- wps word文档生成目录的时候显示断裂会生成大纲怎么办_自从学会了Word自动排版,我的秀发浓密多了...