顺序表应用2:多余元素删除之建表算法(SDUT 3325)
题解: 每次询问一遍,如果已经存在就不用插入表中了。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node
{
int *elem;
int len;
};
void CreatList(int m, struct node &list)
{
list.elem = (int *)malloc(101 * sizeof(int));
list.len = 0;
int x,f = 1;
for(int i = 0; i < m; i ++)
{
f = 1;
scanf("%d", &x);
if(i == 0)
list.elem[list.len ++] = x;
else
{
for(int j = 0; j < list.len; j ++)
{
if(list.elem[j] == x)
{
f = 0;
break;
}
}
if(f)
list.elem[list.len ++] = x;
}
}
}
void print(struct node &list)
{
for(int i = 0; i < list.len; i ++)
{
if(i == 0)
printf("%d",list.elem[i]);
else
printf(" %d", list.elem[i]);
}
printf("\n");
}
int main()
{
int n, m;
scanf("%d",&n);
while(n --)
{
struct node list;
scanf("%d",&m);
CreatList(m,list);
print(list);
}
return 0;
}
Problem Description
一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。
要求:
1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;
2、本题的目标是熟悉在顺序表原表空间基础上建新表的算法,要在原顺序表空间的基础上完成完成删除,建表过程不得开辟新的表空间;
3、不得采用原表元素移位删除的方式。
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
Sample Output
6 9 8
5
9 8 7 6 5
1 2 3 4 5
顺序表应用2:多余元素删除之建表算法(SDUT 3325)的更多相关文章
- SDUT OJ 顺序表应用2:多余元素删除之建表算法
顺序表应用2:多余元素删除之建表算法 Time Limit: 3 ms Memory Limit: 600 KiB Submit Statistic Discuss Problem Descripti ...
- SDUT OJ 顺序表应用1:多余元素删除之移位算法
顺序表应用1:多余元素删除之移位算法 Time Limit: 1000 ms Memory Limit: 650 KiB Submit Statistic Discuss Problem Descri ...
- SDUT OJ 顺序表应用3:元素位置互换之移位算法
顺序表应用3:元素位置互换之移位算法 Time Limit: 1000 ms Memory Limit: 570 KiB Submit Statistic Discuss Problem Descri ...
- 顺序表应用1:多余元素删除之移位算法(SDUT 3324)
Problem Description 一个长度不超过10000数据的顺序表,可能存在着一些值相同的"多余"数据元素(类型为整型),编写一个程序将"多余"的数据 ...
- 顺序表应用3:元素位置互换之移位算法(SDUT 3326)
题解:用一个for,循环m次,每次都把最前面的放到最后面,就可以了. #include <stdio.h> #include <stdlib.h> #include <s ...
- jQuery编程基础精华02(属性、表单过滤器,元素的each,表单选择器,子元素过滤器(*),追加方法,节点,样式操作)
属性.表单过滤器 属性过滤选择器: $("div[id]")选取有id属性的<div> $("div[title=test]")选取title属性为 ...
- Oracle 创建表空间、临时表空间、创建用户并指定表空间、授权,删除用户及表空间
/* 说明:若已经存在相应的用户和表空间,则需要先删除相应的用户和表空间 然后再全部重新建立 */ --删除用户 drop user USERNAME cascade; --删除表空间 drop ta ...
- oracle 创建表、删除表、添加字段、删除字段、表备注、字段备注、修改表属性
1.创建表 create table 表名( classid number() primary key, 表字段 数据类型 是否允许为空(not null:不为空/null:允许空) 默认值(defa ...
- 了解HTML表单之form元素
前面的话 表单是网页与用户的交互工具,由一个<form>元素作为容器构成,封装其他任何数量的表单控件,还有其他任何<body>元素里可用的标签 表单能够包含<input& ...
随机推荐
- python线程间通信
#!/usr/bin/python # -*- coding:utf8 -*- from threading import Thread, Lock import random def test_th ...
- 一次简单的springboot+dubbo+flume+kafka+storm+redis系统
最近无事学习一下,用springboot+dubbo+flume+kafka+storm+redis做了一个简单的scenic系统 scenicweb:展现层,springboot+dubbo sce ...
- Python(六) —— 网络请求
接口调用 接口调用有几个模块可以用:urllib 和 requests ,urllib 是内置的模块,极其不好用,强烈推荐用 requests 模块 get 请求 1.普通的 get 请求 impor ...
- nodes.js详细安装
nodes.js详细安装 Node.js 本章节我们将向大家介绍在window和Linux上安装Node.js的方法. 本安装教程以Node.js v4.4.3 LTS(长期支持版本)版本为例. No ...
- arcgis之隐藏设置放大缩小按钮
arcgis之隐藏设置放大缩小按钮 隐藏按钮: view.ui._removeComponents(['zoom']) 设置按钮: let zoom = new Zoom({ view: this.v ...
- java 常用日期工具类的操作
获取指定日期的时间戳 /* * 获取指定日期的时间戳 * */ public static long getMillis(String date_str){ try { SimpleDateForma ...
- js div模拟水平滚动条
这个也是我百度到的,但是忘记保存连接了,现在把代码贴上来,有需要的可以参考一下: <!DOCTYPE html> <html> <head> <meta ch ...
- mysql复制表的方法
## 跨库复制表的方法 使用navicat 直接使用navicat的 转储sql文件 结构+数据 mysqldump 备份导出 导入 (数据库备份-恢复) mysqldump -h链接ip -P(大写 ...
- CDH6.1.0新增主机资源
在CDH 6.1.0 上增加主机 一 客户端配置 1.1 JAVA 配置 1.2 关闭selinux以及防火墙 1.3 将服务端的agent包打包然后拷贝到客户端 然后解压 启动(也可以rpm安装) ...
- python转化13位时间戳
# -*- coding: utf-8 -*- def get_time_stamp13(datetime_obj): import datetime, time # 生成13时间戳 eg:15578 ...