顺序表应用1:多余元素删除之移位算法
来源:互联网 发布:女生喜欢什么礼物知乎 编辑:程序博客网 时间:2024/05/17 07:13
Problem Description一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。要求: 1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能; 2、本题的目标是熟悉顺序表的移位算法,因此题目必须要用元素的移位实现删除; Input 第一行输入整数n,代表下面有n行输入;之后输入n行,每行先输入整数m,之后输入m个数据,代表对应顺序表的每个元素。 Output 输出有n行,为每个顺序表删除多余元素后的结果 Example Input45 6 9 6 8 93 5 5 55 9 8 7 6 510 1 2 3 4 5 5 4 2 1 3Example Output6 9 859 8 7 6 51 2 3 4 5Hint
#include<iostream>#include<stdlib.h>using namespace std;typedef struct {int *elem;int length;int listsize;}list;void creat(list &l,int n){l.elem=new int[101];if(!l.elem)exit(0);l.length=0;for(int i=0;i<n;i++){cin>>l.elem[i];l.length++;}l.listsize=101;}void listdel(list &l){int *p,*q;p=l.elem;q=l.elem+l.length;for(;p<q;p++){for(int *t=p+1;t<q;t++){if(*p==*t){for(int *k=t;k<q-1;k++){*k=*(k+1);}l.length--;q--;t--;}}}}int main(){int t,n;cin>>t;while(t--){cin>>n;list p;creat(p,n);listdel(p);for(int i=0;i<p.length;i++){if(i==p.length-1)cout<<p.elem[i]<<endl;elsecout<<p.elem[i]<<' ';}}return 0;}
阅读全文
0 0
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- Spring定时任务的几种实现
- C++使用SQLite3心得 -- sqlite3以二进制形式存取图片(MFC,CppSQLite3U封装类)
- 面向对象是什么?为什么要面向对象
- 背包
- Codeforecs 700D Connecting Universities 构造
- 顺序表应用1:多余元素删除之移位算法
- leetcode--Reverse Nodes in k-Group
- 在汇编代码中调用C函数
- JS常见算法-迭代
- DUBBO功能使用说明
- synchronized修饰静态方法和非静态方法的总结
- JSTL 标签库的使用
- 比特币、区块链、以太坊、令牌、ICOs:到底是啥关系?
- MyBatis核心配置文件