基础数据结构——顺序表(2)

Time Limit: 1000 MS    Memory Limit: 10240 K

Total Submit: 355(143 users) Total Accepted: 158(130 users)    Rating:         Special Judge: No

Description

在长度为n(n<1000)的顺序表中可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只能有一个)。

Input

第一行输入表的长度n;

第二行依次输入顺序表初始存放的n个元素值。

Output

第一行输出完成多余元素删除以后顺序表的元素个数;

第二行依次输出完成删除后的顺序表元素。

Sample Input

12

5 2 5 3 3 4 2 5 7 5 4 3

Sample Output

5

5 2 3 4 7


  数据结构,顺序表的实现

  顺序表是顺序结构实现的线性表,这道题考察的是顺序表的实现及基本操作。题目不难,是道入门题。

  注意输出格式,最后一个元素后面不能有空格。

  代码

 #include <iostream>
#include <malloc.h>
using namespace std;
#define MAXSIZE 1010
typedef struct { //定义顺序表类型
int data[MAXSIZE];
int length;
}SqList,*LinkSqList;
//顺序表初始化
void Init(SqList* &sq)
{
sq->length = ;
}
//插入
void Insert(SqList* &sq,int i,int x) //在第i位置插入元素值为x的元素
{
if(sq->length>=MAXSIZE){
cout<<"表已满,无法插入!"<<endl;
}
else if(i< || i>sq->length+){
cout<<"插入位置不合理!"<<endl;
}
else{
int j;
for(j=sq->length;j>=i;j--)
sq->data[j+] = sq->data[j];
sq->data[i] = x;
sq->length++;
}
}
//删除
void Delete(SqList* &sq,int i) //删除第i个元素
{
if(sq->length<=)
cout<<"表已空,无法删除!"<<endl;
else if(i< || i>sq->length)
cout<<"删除位置不合理!"<<endl;
else {
int j;
for(j=i+;j<=sq->length;j++)
sq->data[j-] = sq->data[j];
sq->length--;
}
}
//输出顺序表
void Print(SqList* &sq) //输出顺序表中所有元素
{
int i;
for(i=;i<=sq->length;i++){
cout<<sq->data[i];
if(i<sq->length)
cout<<' ';
}
cout<<endl;
}
//销毁顺序表
void Destroy(SqList* &sq) //销毁顺序表
{
free(sq);
}
//去重
void DeleteRepeat(SqList* &sq) //删掉重复元素
{
int i,j;
for(i=;i<=sq->length;i++)
for(j=;j<i;j++)
if(sq->data[j]==sq->data[i]){
Delete(sq,i);
i--;
break;
}
}
int main()
{
int i,n,t;
while(cin>>n){
LinkSqList sq = (SqList*)malloc(sizeof(SqList));
Init(sq);
//输入
for(i=;i<=n;i++){
cin>>t;
Insert(sq,i,t); //插入元素
}
//去重
DeleteRepeat(sq);
//输出
cout<<sq->length<<endl;
Print(sq);
Destroy(sq);
}
return ;
}

Freecode : www.cnblogs.com/yym2013

hrbustoj 1545:基础数据结构——顺序表(2)(数据结构,顺序表的实现及基本操作,入门题)的更多相关文章

  1. PHP数据结构之二 线性表中的顺序表的PHP实现

    线性表 (一)基本特点:最基本.最简单.最常用的一种数据结构 在这种结构中: 1.存在一个唯一的被称为“第一个”的数据元素: 2.存在一个唯一的被称为“最后一个”的数据元素: 3.除第一个元素外,每个 ...

  2. SDUT OJ 数据结构上机测试1:顺序表的应用

    数据结构上机测试1:顺序表的应用 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descri ...

  3. [一]class 文件浅析 .class文件格式详解 字段方法属性常量池字段 class文件属性表 数据类型 数据结构

    前言概述  本文旨在讲解class文件的整体结构信息,阅读本文后应该可以完整的了解class文件的格式以及各个部分的逻辑组成含义   class文件包含了java虚拟机指令集 和  符号表   以及若 ...

  4. php数据结构课程---1、数据结构基础介绍(程序是什么)

    php数据结构课程---1.数据结构基础介绍(程序是什么) 一.总结 一句话总结: 程序=数据结构+算法 设计好数据结构,程序就等于成功了一半. 数据结构是程序设计的基石. 1.数据的逻辑结构和物理结 ...

  5. JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)

    前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基 ...

  6. 【Java数据结构学习笔记之一】线性表的存储结构及其代码实现

    应用程序后在那个的数据大致有四种基本的逻辑结构: 集合:数据元素之间只有"同属于一个集合"的关系 线性结构:数据元素之间存在一个对一个的关系 树形结构:数据元素之间存在一个对多个关 ...

  7. Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题

    Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...

  8. PHP面试(二):程序设计、框架基础知识、算法与数据结构、高并发解决方案类

    一.程序设计 1.设计功能系统——数据表设计.数据表创建语句.连接数据库的方式.编码能力 二.框架基础知识 1.MVC框架基本原理——原理.常见框架.单一入口的工作原理.模板引擎的理解 2.常见框架的 ...

  9. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

随机推荐

  1. Hibernate之一对多(多对一)

    一.双向关联级联保存客户订单 1.搭建环境,项目结构如下 2.代码及配置如下(数据库里订单表不能用order,因为order是数据库关键字)(客户外键cid和订单表外键cid要在配置中写一致) pac ...

  2. fork Bomb

    类Unix ;(){:|:&};: windows %0|%0

  3. TCP的那些事儿(上)

    TCP的那些事儿(上) 原文链接:http://coolshell.cn/articles/11564.html TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面. ...

  4. php统计字数函数

    function countWords($str){ echo (mb_strlen($str, 'utf8') + strlen($str))/2; }

  5. mono 3.4.0 make install的时候出现"找不到 Microsoft.Portable.Common.targets 文件”的错误提示解决方法

    如果在这时就进行配置安装Mono的话,会在make阶段得到一个“找不到 Microsoft.Portable.Common.targets 文件”的错误提示, 所以需要先进行如下处理: #> c ...

  6. Vim常用操作(1)-常用指令

    1.清空文件内容 Normal模式下,先输入"gg",将光标定位到文件首,然后输入"dG",文件就被清空了.当然也可以直接输入"ggdG".

  7. WCF报 当前已禁用此服务的元数据发布的错误

    这是 Windows© Communication Foundation 服务. 当前已禁用此服务的元数据发布. 如果具有该服务的访问权限,则可以通过完成下列步骤来修改 Web 或应用程序配置文件以便 ...

  8. delphi基本语法

    本文参考自<delphi2010语法手册> 1. 工程文件结构 源文件联系着unit单元,delphi主模块源文件格式为.dpr,其他模块为.pas,一个完整程序由一个.dpr和若干.pa ...

  9. winscp私钥如何生成

    问题1,我用SecureCRT 5.0的自带工具生成了密钥和公钥(分别是不带后缀名的密钥文件和.pub的公钥文件),传上服务器也可以正常使用.     但是我用其它一些客户端工具连接时需要的密钥文件是 ...

  10. zstu.4022.旋转数阵(模拟)

    旋转数阵 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 1477  Solved: 102 Description 把1到n2的正整数从左上角开始由外层 ...