Description
一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。
要求:
1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;
2、本题的目标是熟悉顺序表的移位算法,因此题目必须要用元素的移位实现删除;
Input
第一行输入整数n,代表下面有n行输入;
之后输入n行,每行先输入整数m,之后输入m个数据,代表对应顺序表的每个元素。
Output
输出有n行,为每个顺序表删除多余元素后的结果
Sample
Input
4
5 6 9 6 8 9
3 5 5 5
5 9 8 7 6 5
10 1 2 3 4 5 5 4 2 1 3
Output
6 9 8
5
9 8 7 6 5
1 2 3 4 5
Hint

#include<bits/stdc++.h>using namespace std;typedef struct {int data[10000];
}SL;
void creatlist(SL *l, int n) {for(int i = 0; i < n; i++) {scanf("%d", &l->data[i]);}
}
int deletelist(SL *l, int n) {for(int i = 0; i < n; i++) {for(int j = i + 1; j < n; j++) {if(l->data[i] == l->data[j]) {n--;for(int k = j; k < n; k++) {l->data[k] = l->data[k + 1];}j--;}}}return n;
}//这个参考了其他大佬写的,感觉这个地方写的很妙!void printlist(SL *l, int n) {for(int i = 0; i < n; i++) {if(i == n - 1) {printf("%d\n", l->data[i]);} else {printf("%d ", l->data[i]);}}
}int main() {int n;scanf("%d", &n);while(n--) {int m;scanf("%d", &m);SL l;creatlist(&l, m);m = deletelist(&l, m);printlist(&l, m);}return 0;
}

顺序表应用1:多余元素删除之移位算法相关推荐

  1. A - 顺序表应用1:多余元素删除之移位算法

    Description 一个长度不超过10000数据的顺序表,可能存在着一些值相同的"多余"数据元素(类型为整型),编写一个程序将"多余"的数据元素从顺序表中删 ...

  2. 顺序表应用2:多余元素删除之建表算法

    顺序表应用2:多余元素删除之建表算法 Description 一个长度不超过10000数据的顺序表,可能存在着一些值相同的"多余"数据元素(类型为整型),编写一个程序将" ...

  3. 数据结构例1.已知顺序表L的长度为n,试编写算法实现在顺序表中删除值为elem的数据元素

    //已知顺序表L的长度为n,试编写算法实现在顺序表中删除值为elem的数据元素 //(其中n与elem从键盘输入) # include <iostream> # include <s ...

  4. 1-2、数据结构线性表之顺序表的基本操作插入、删除、遍历、初始化

    学习需要记录,更需要温习! 上一篇我们总结了什么是线性表,线性表的ADT类型,线性表的两种存储类型顺序存储结构和链式存储结构,今天正式进入线性表的顺序存储结构的总结和归纳,也就是数据结构的线性表的顺序 ...

  5. 顺序表应用3:元素位置互换之移位算法

    Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m< ...

  6. 顺序表应用4:元素位置互换之逆置算法

    这道题和顺序表应用4-2:元素位置互换之逆置算法(数据改进)的算法没差什么. Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该 ...

  7. 线性表顺序表---逆置所有元素

    1 /*顺序表中所有的元素逆置 2 * 3 */ 4 #include <iostream.h> 5 using namespace std; 6 7 int main(){ 8 void ...

  8. 【顺序表】13 顺序表ADT模板设计及简单应用:将顺序表中前 m 个元素和后 n 个元素进行互换

    问题描述 : 目的:使用自行设计的顺序表ADT或STL中的vector模板,设计并实现顺序表应用场合的一些简单算法设计. 应用1:试设计一个算法,用尽可能少的辅助空间将非空顺序表中前 m 个元素和后 ...

  9. 顺序表ADT模板设计及简单应用:将顺序表中前 m 个元素和后 n 个元素进行互换

    顺序表ADT模板设计及简单应用:将顺序表中前 m 个元素和后 n 个元素进行互换 作者: 冯向阳 时间限制: 1S 章节: DS:线性表 问题描述 : 目的:使用自行设计的顺序表ADT或STL中的ve ...

最新文章

  1. 定义一个Teacher(教师)类,和一个Student(学生)类
  2. php加载不了图片不显示,图片显示不出来,但是数据库里有显示
  3. java mvc ef_一个简单MVC5 + EF6示例分享
  4. 如何快速接手一个系统?
  5. 一篇清华博士的美赛心得 | 参加世界最牛数学建模竞赛是一种怎样的体验?
  6. Pycharm最新版本安装教程
  7. BZOJ 2460: [BeiJing2011]元素 线性基
  8. 机器学习PAI快速入门
  9. java linux 信号_Java 中关于信号的处理在Linux下的实现
  10. Linux 命令源码 —— cat
  11. css3禅密花园叫什么名字_CSS秘密花园:灵活的椭圆形
  12. python win32api messagebox_如何在Python中使用Win32 API?
  13. iPad最新型笔刷,足足五种分类,几百款
  14. string.class是什么意思?
  15. 如何在电脑上用Win11便签备忘录提醒重要工作
  16. win10恢复经典开始菜单_Win10 10月更新发布!全新开始菜单来了,这次你敢更新吗...
  17. YOLOv5源码逐行超详细注释与解读(3)——训练部分train.py
  18. UCI、KEEL下载数据集
  19. boost circular_buffer的特性及应用
  20. ZooKeeper源码分析之完整网络通信流程(一)

热门文章

  1. 在Ubuntu中安装及配置java
  2. eBay的Elasticsearch性能调优实践
  3. spring-data-redis工程
  4. 数据挖掘十大经典算法之——Naive Bayes 算法
  5. 万物上链: 5G 起跑
  6. 这个德国山寨工厂靠抄袭干到240亿,让硅谷恨之入骨
  7. 白话Elasticsearch41-深入聚合数据分析之案例实战__过滤+聚合:统计价格大于2000的电视平均价格
  8. Spring MVC-03循序渐进之Spring MVC
  9. Java学习笔记(六)--字符串String类
  10. 3.20周记:栈和队列