顺序表应用1:多余元素删除之移位算法 7.16补
来源:互联网 发布:c语言如何加密文件 编辑:程序博客网 时间:2024/06/05 10:40
顺序表应用1:多余元素删除之移位算法
Time Limit: 1000MS Memory limit: 650K
题目描述
要求:
1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;
2、本题的目标是熟悉顺序表的移位算法,因此题目必须要用元素的移位实现删除;
输入
之后输入n行,每行先输入整数m,之后输入m个数据,代表对应顺序表的每个元素。
输出
示例输入
45 6 9 6 8 93 5 5 55 9 8 7 6 510 1 2 3 4 5 5 4 2 1 3
示例输出
6 9 859 8 7 6 51 2 3 4 5
提示
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#define MAX 10002
using namespace std;
typedef struct
{
int *elem;
int length;
}Sq;
void initList (Sq *L)
{
L->elem = (int *)malloc(MAX*4);
if( !L->elem )
exit(-1);
L->length = 0;
}
void create(Sq *L, int m)
{
int i;
for(i = 0;i < m; i++)
{
scanf("%d",&L->elem[i]);
}
L->length = m;
}
void Del(Sq *L, int k)
{
int *q,*p;
q = L->elem + L->length - 1;
for(p = &L->elem[k];p < q; p++)
{
*p = *(p+1);
}
L->length--;
}
void locList(Sq *L)
{
int *q,*p;
q = L->elem;
while(q != L->elem + L->length)
{
p = q + 1;
while(p != L->elem + L->length)
{
if(*p == *q)
{
Del(L, (p - L->elem));
p--;
}
p++;
}
q++;
}
}
void dispaly(Sq *L)
{
int i;
for(i = 0;i < L->length; i++)
{
printf(i != L->length-1 ? "%d " : "%d\n" , L->elem[i]);
}
}
int main()
{
Sq L;
int n,m,i;
scanf("%d",&n);
for(i = 0;i < n; i++)
{
scanf("%d",&m);
initList(&L);
create(&L, m);
locList(&L);
dispaly(&L);
}
return 0;
}
代码菜鸟,如有错误,请多包涵!!
- 顺序表应用1:多余元素删除之移位算法 7.16补
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- HDU 2141 Can you find it?(数组找数字,二分)
- HDU 3367
- intellijidal如何将一个普通的java项目转变成maven项目
- Redis 数据类型
- 【C# DateTime】如何一次性修改DateTime的默认ToString格式
- 顺序表应用1:多余元素删除之移位算法 7.16补
- 分类器
- 求n的阶乘(10000)
- MySQl workbench ER转SQL
- LinQ to SQL用法详解
- 深度探索c++对象模型-阅读笔记
- 数据库版本更新和数据备份
- 盒子模型
- <item> tag requires a 'drawable' attribute"-selector设置颜色不成功-解决方案