顺序表应用1:多余元素删除之移位算法
时间:2020-03-27
本文章向大家介绍顺序表应用1:多余元素删除之移位算法,主要包括顺序表应用1:多余元素删除之移位算法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
顺序表应用1:多余元素删除之移位算法
Description
一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。
要求:
1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;
2、本题的目标是熟悉顺序表的移位算法,因此题目必须要用元素的移位实现删除;
要求:
1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;
2、本题的目标是熟悉顺序表的移位算法,因此题目必须要用元素的移位实现删除;
Input
第一行输入整数n,代表下面有n行输入;
之后输入n行,每行先输入整数m,之后输入m个数据,代表对应顺序表的每个元素。
之后输入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
1 #include<iostream> 2 #include<stdio.h> 3 #define listMax 100000 4 5 using namespace std; 6 7 typedef int element; 8 typedef struct{ 9 element *elem; 10 int length; 11 int listSize; 12 }Elemlist; 13 14 void creat(Elemlist &L,int n){ 15 L.elem = new int[listMax]; 16 L.length = n; 17 L.listSize = listMax; 18 } 19 20 void input(Elemlist &L){ 21 int i; 22 for(i = 0 ; i < L.length;i++){ 23 scanf("%d",&L.elem[i]); 24 } 25 } 26 27 void del(Elemlist &L,int j){ 28 int i; 29 for(i = j ; i < L.length;i++){ 30 L.elem[i] = L.elem[i + 1]; 31 } 32 L.length--; 33 } 34 35 void compare(Elemlist &L){ 36 int i,j; 37 for(i = 0; i < L.length - 1;i++){ 38 for(j = i + 1;j < L.length; j++){ 39 if(L.elem[i] == L.elem[j]){ 40 del(L,j); 41 j--; 42 } 43 } 44 } 45 } 46 47 void output(Elemlist &L){ 48 int i; 49 for(i = 0; i < L.length - 1;i++){ 50 printf("%d ",L.elem[i]); 51 } 52 printf("%d\n",L.elem[i]); 53 } 54 55 int main(){ 56 Elemlist L; 57 int a,b; 58 scanf("%d",&a); 59 while(a--){ 60 scanf("%d",&b); 61 creat(L,b); 62 input(L); 63 compare(L); 64 output(L); 65 } 66 return 0; 67 }
原文地址:https://www.cnblogs.com/xiaolitongxueyaoshangjin/p/12584062.html
- Intellij IDEA 插件开发之自建插件仓库
- 空Word文档附件:绕过垃圾邮件过滤的新方法
- SpringMVC基本使用关于DisptacherServlet关于ServletContainerInitializer最简单配置接收参数路径变量表单变量
- 测序数据可视化 (一)
- Android log日志
- Activity的生命周期
- GitHub无法访问或访问缓慢解决办法
- 我用 Python 爬取了全国 4500 个热门景点,告诉你国庆哪里去不得?
- Fragment添加、删除、替换
- spring整合hibernate
- Android应用程序中应用图标和名字的设置
- java中的==和equals
- Android手机开机自动启动
- spring Boot 配置文件详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- spring-boot-route(十八)spring-boot-actuator监控应用
- 浅析PHP7的多进程及实例源码
- spring-boot-route(十九)spring-boot-admin监控服务
- Python scrapy爬取小说代码案例详解
- 解决pip install psycopg2出错问题
- PHP开发的文字水印,缩略图,图片水印实现类与用法示例
- spring-boot-route(二十)Spring Task实现简单定时任务
- php+ajax实现商品对比功能示例
- spring-boot-route(二十一)Quartz实现动态定时任务
- Helm仓库的重要变更和v2支持将在11月结束
- ThinkPHP框架整合微信支付之刷卡模式图文详解
- 详解Python直接赋值,深拷贝和浅拷贝
- 利用python下载scihub成文献为PDF操作
- PHP中的Iterator迭代对象属性详解
- 使用Python实现微信拍一拍功能的思路代码